[英]R contingency table on multiple crossed/interacted columns
我想知道是否有辦法在 R 上的多列上實現“漂亮”的列聯表。 我不確定我使用的術語是否足夠精確,所以我正在尋找:
我從我的數據示例開始:
structure(list(Gender = c("Male", "Female", "Male", "Male", "Male",
"Male", "Male", "Male", "Male", "Male", "Male", "Female", "Male",
"Male", "Male", "Male", "Male", "Female", "Male", "Male", "Female",
"Male", "Male", "Male", "Male", "Male", "Female", "Female", "Male",
"Female"), Race = c("White", "Hispanic/Latino(a)", "White", "White",
"White", "White", "Black/African American", "Black/African American",
"White", "Hispanic/Latino(a)", "Hispanic/Latino(a)", "Black/African American",
"Hispanic/Latino(a)", "Black/African American", "White", "Hispanic/Latino(a)",
"Hispanic/Latino(a)", "White", "Hispanic/Latino(a)", "Hispanic/Latino(a)",
"White", "Black/African American", "White", "Hispanic/Latino(a)",
"White", "Hispanic/Latino(a)", "Hispanic/Latino(a)", "Hispanic/Latino(a)",
"Hispanic/Latino(a)", "White"), Age = structure(c(1L, 2L, 1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 3L, 1L, 1L, 2L, 1L,
1L, 1L, 3L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L), levels = c("(10,30]",
"(30,50]", "(50,100]"), class = "factor")), row.names = c(7022L,
3223L, 447L, 6750L, 5255L, 9689L, 9263L, 3865L, 8891L, 6190L,
7438L, 6313L, 496L, 130L, 4771L, 4172L, 5150L, 4290L, 3960L,
3552L, 2609L, 4007L, 6725L, 520L, 8034L, 8672L, 7903L, 8693L,
9380L, 1257L), class = "data.frame")
Gender Race Age
7022 Male White (10,30]
3223 Female Hispanic/Latino(a) (30,50]
447 Male White (10,30]
6750 Male White (10,30]
5255 Male White (10,30]
9689 Male White (10,30]
我想創建一個列聯表,它會給我這樣的結果:
Race
Age Gender Black/African American Hispanic/Latino(a) White
(10,30] Female 1 1 2
Male 2 6 7
(30,50] Female 0 2 1
Male 1 4 1
(50,100] Female 0 0 0
Male 1 0 1
我嘗試在三個變量上使用表:
table(df[,c('Age','Gender','Race')])
但我得到了以下結果:
, , Age = (10,30]
Race
Gender Black/African American Hispanic/Latino(a) White
Female 1 1 2
Male 2 6 7
, , Age = (30,50]
Race
Gender Black/African American Hispanic/Latino(a) White
Female 0 2 1
Male 1 4 1
, , Age = (50,100]
Race
Gender Black/African American Hispanic/Latino(a) White
Female 0 0 0
Male 1 0 1
我也嘗試使用交互:
table(interaction(df$Age, df$Gender), df$Race)
我得到以下結果:
Black/African American Hispanic/Latino(a) White
(10,30].Female 1 1 2
(30,50].Female 0 2 1
(50,100].Female 0 0 0
(10,30].Male 2 6 7
(30,50].Male 1 4 1
(50,100].Male 1 0 1
這還不錯,但仍然沒有我想要的那么漂亮。
我希望我很清楚,非常感謝您的幫助!
ftable(df, row.vars = c(3,1))
Race Black/African American Hispanic/Latino(a) White
Age Gender
(10,30] Female 1 1 2
Male 2 6 7
(30,50] Female 0 2 1
Male 1 4 1
(50,100] Female 0 0 0
Male 1 0 1
甚至
ftable(df[,c('Age','Gender','Race')])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.