提问人:Hack-R 提问时间:11/25/2015 最后编辑:Hack-R 更新时间:11/25/2015 访问量:56
在 table() 中使用 R 中的 2 个二进制变量打印可变名称
Print varible names in table() with 2 binary variables in R
问:
我敢肯定我会因为无法弄清楚这一点而自责,但是当您有一个包含 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
答:
1赞
Konrad Rudolph
11/25/2015
#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
评论
0赞
Hack-R
11/25/2015
当您在具有 2 列以上的数据帧中使用 2 列时,我认为这不起作用(我不想停下来创建一个新对象或命名我的许多列中的每一列)。
0赞
Hack-R
11/26/2015
> dimnames(tc$tr) <- list(“tr”) dimnames(tc$tr) 中的错误 <- list(“tr”) : 'dimnames' 应用于非数组 > dimnames(tc$tr, tc$fall_term) <- list(“tr”, “fall_term”) dimnames<-(tmp, tc$fall_term, value = list(“tr”, “fall_term”)) 中的错误:传递给“dimnames<-”的 3 个参数,需要 2 个
0赞
Konrad Rudolph
11/27/2015
@Hack-R 再看我的回答:你需要用,而不仅仅是.但这仍然不起作用,因为您将其应用于错误的对象:没有输出表。当你遇到这样的错误时,你的第一反应应该是检查有问题的对象——这会告诉你为什么不起作用。names(dimnames(x))
dimnames(x)
tc$tr
dimnames
dimnames(tc$tr)
4赞
etienne
11/25/2015
#2
您可以使用以下选项: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))
评论
paste
table
names(dimnames(tbl)) <- list('row', 'col')
dnn
dnn=c('tr','fall_term')
dnn