2017-09-17 2 views
-1

Exemple 10.1. Que les types de sang et le sexe de 40 personnes sont les suivantes:
(O, Homme), (O, Femme), (A, Femme), (B Homme), (A, Femme), (O, Femme) , (A, mâle), (A, mal), (A, Femme), (O, mal), (B, homme), (O, homme), B, Femme), (O, mal), (O, mâle), (A, Femme), (O, mal), (O, mal), (A, Femme), (A, Femme), (A, mal), (A, mâle), (AB, Femme), (A, Femme), (B, Femme), (A, mal), (A, Femme), (O, mal), (O, mâle), (A, Femme), (O , mal), (O, Femme), (A, Femme), (A, mal), (A, mal), (O, mâle), (A, mal), (O, Femme), (O, Femme), (AB, Homme).
récapitulant les données dans un tableau de fréquences dans les deux sens à l'aide de SPSS:Création d'une table avec R

Puis-je utiliser R pour le faire?

+0

Il serait facile si vous présentez un exemple minimal d'avoir une idée de ce que vous voulez exactement. Jetez un oeil à 'janitor'package. Il fait peut-être votre truc. – Edu

+0

Fondamentalement, je voudrais créer une table diveded par sexe et par type de sang afin de quantifier cet ensemble de données. –

Répondre

1

Regardez l'exemple ci-dessous à l'aide dplyr et janitor

id = rep(1:40) 
gender = sample(c("M", "F"), 40, TRUE) 
blood = sample(c("O", "A"), 40, TRUE) 

df = data.frame(id, gender, blood) 

library(dplyr) 

> df %>% group_by(gender, blood) %>% tally() 
# A tibble: 4 x 3 
# Groups: gender [?] 
    gender blood  n 
    <fctr> <fctr> <int> 
1  F  A 11 
2  F  O  8 
3  M  A  8 
4  M  O 13 

library(janitor) 

df %>% crosstab(gender, blood) 

gender A O 
1  F 11 8 
2  M 8 13 
+1

pas oublier 'table': votre deuxième onglet result' <- avec (df, table (sexe, sang))', et le first' data.frame (onglet) ' – user20650

0

Vous devez envoyer vos données sous une forme plus utilisable. Tels que l'affichage de la sortie de dput(x), où x est le nom de votre ensemble de données. La plupart des travaux était d'obtenir ce que vous avez posté dans un data.frame.

x <- "(O,Male),(O,Female),(A,Female),(B,Male),(A,Female),(O,Female),(A,Male), 
     (A,Male),(A,Female),(O,Male),(B,Male),(O,Male),B,Female),(O,Male), 
     (O,Male), (A,Female),(O,Male),(O,Male),(A,Female),(A,Female),(A,Male), 
     (A,Male), (AB,Female),(A,Female),(B,Female),(A,Male),(A,Female), 
     (O,Male),(O,Male), (A,Female),(O,Male),(O,Female),(A,Female),(A,Male), 
     (A,Male),(O,Male), (A,Male),(O,Female),(O,Female),(AB,Male)" 

s <- sub("\\(", "", strsplit(x, "\\),")[[1]]) 
s <- sub("\\)", "", s) 
s <- strsplit(s, ",") 
s <- lapply(s, trimws) 
dat <- as.data.frame(do.call(rbind, s)) 
names(dat) <- c("BloodType", "Sex") 

En base R il y a des fonctions pour créer des tables dans les deux sens.

xtabs(~ BloodType + Sex, data = dat) 
#   Sex 
#BloodType Female Male 
#  A  10 8 
#  AB  1 1 
#  B  2 2 
#  O  5 11