我确定我会因为无法解决这个问题而踢我自己,但是当你有一个包含2个变量的表(即交叉表)并且两者都是二进制或其他具有相同级别时,你怎么能使R显示哪个变量按行显示哪个变量按列显示?
例如:
> table(tc$tr, tc$fall_term)
0 1
0 1569 538
1 0 408
有点令人困惑,因为它不是立即显而易见的。当然,我检查了?table
,但我没有看到这样做的选项,至少没有一个逻辑开关不要求我已经知道哪个是哪个。
我尝试了ftable
但遇到了同样的问题。
我想要的输出是这样的:
> table(tc$tr, tc$fall_term)
tr tr
0 1
fallterm 0 1569 538
fallterm 1 0 408
或
> table(tc$tr, tc$fall_term)
fallterm fallterm
0 1
tr 0 1569 538
tr 1 0 408
答案 0 :(得分:4)
您可以使用dnn
选项:
table(df$tr,df$fall_term) # impossible to tell the difference
0 1
0 18 33
1 15 34
table(df$tr,df$fall_term,dnn=c('tr','fall_term')) # you have the names
fall_term
tr 0 1
0 18 33
1 15 34
请注意,table(df$tr,df$fall_term,dnn=colnames(df))
答案 1 :(得分:1)
结帐dimnames
,特别是names
。我在这里使用另一个例子,因为我没有你的数据:
x = HairEyeColor[, , Sex = 'Male']
names(dimnames(x))
# [1] "Hair" "Eye"
names(dimnames(x)) = c('Something', 'Else')
x
# Else
# Something Brown Blue Hazel Green
# Black 32 11 10 3
# Brown 53 50 25 15
# Red 10 10 7 7
# Blond 3 30 5 8