2017-09-17 58 views
-1

實施例10.1的表。讓血液類型和40的人的性別如下:
(O,男),(O,女),(A,女),(B男),(A,女),(O,女) ,(A,男), (A,發作),(A,女),(O,發作),(B,男),(O,男),B,女),(O,MAL),( O,男), (A,女),(O,發作),(O,MAL),(A,女),(A,女),(A,MAL),(A,男), ( AB,女),(A,女),(B,女),(A,MAL),(A,女),(O,發作),(O,男), (A,女),(O ,MAL),(O,女),(A,女),(A,MAL),(A,MAL),(O,男), (A,發作),(O,女),(O,女),(AB,男)。通過使用SPSS在雙向頻率表
彙總數據:創建其中R

我可以使用[R這樣做呢?

+0

如果你提出一個最小的例子有你想要什麼想法這將是容易的。看看'janitor'package。它可能做你的事。 – Edu

+0

基本上我想以量化數據集建立按性別和血型diveded的表。 –

回答

1

請看下面的例子中使用dplyrjanitor

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

不忘掉'table':你的第二result'標籤< - 與(DF,表(性別,血液))',並且first' data.frame(製表符)' – user20650

0

你應該更可用的形式發表您的數據。如張貼dput(x),其中x輸出數據集的名稱。大部分的工作是讓你張貼在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") 

base R有函數來創建雙向表。

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