在具有列名的某个data.frame()上调用时,table()中缺少名称

时间:2017-01-26 08:02:06

标签: r

缺少table()中的列名 - 输出

函数表()将打印表中数据框的列名, 当data.frame()创建时如下:

table(data.frame( var1 = "yes", var2 = "no") )
     var2
var1  no
  yes  1

但是当我像这样创建data.frame()时,table() - 函数会 不打印任何列名称:

e1 <- data.frame( smoking = "no", cvd = "no" ) 
e1 <- e1[rep(1,3495),]
e2 <- data.frame( smoking = "no", cvd = "yes" ) 
e2 <- e2[rep(1,57), ] 
e3 <- data.frame( smoking = "yes",cvd = "no")
e3 <- e3[rep(1,2112),]
e4 <- data.frame( smoking = "yes",cvd = "yes")
e4 <- e4[rep(1,75),]
ee <- rbind( e1,e2,e3,e4)

表中没有打印出姓名:

> table( ee$smoking, ee$cvd)

        no  yes
  no  3495   57
  yes 2112   75

尽管ee实际上是一个data.frame并且有名字:

> class(ee)
[1] "data.frame"
> names(ee)
[1] "smoking" "cvd"    

所以我的问题是为什么table() - 函数在调用时不会打印名称 在ee-data.frame上?

2 个答案:

答案 0 :(得分:1)

如果您使用data.frame调用table,它会打印名称,下面的代码可以工作:

table(ee)
       cvd
smoking   no  yes
    no  3495   57
    yes 2112   75

但是当你致电table(ee$cvd,ee$smoking)时,它会将它们视为单独的向量,而不是data.frame

答案 1 :(得分:0)

dnn中有一个table参数,可以在输入参数为vector s

的情况下起作用
table(ee$cvd, ee$smoking, dnn = list("smoking", "cvd"))
#       cvd
#smoking   no  yes
#    no  3495 2112
#   yes   57   75