我使用as.data.frame(table(something_to_count))
,得到的结果如下:
Var1 Freq
1 20 2970
2 30 1349
3 40 322
4 50 1009
我只想要$Var1
值,但如果我写d[1,]$Var1
或d[1,1]
,我总是得到这些东西:
1] 20
305 Levels: 20 30 40 50 60 70 80 90 100 110 120 130 150 160 170 190 200 ... 4120
当我尝试输出该值时,它总是不是20,而是1.并且as.number()
也只能返回1.我怎样才能真正得到Var1值而不是获取id排?此外,当输出是水平数字?有什么问题?
答案 0 :(得分:2)
类“table”对象的as.data.frame
方法返回第一列作为因子和(以及任何其他“边缘标签”列),并且仅将最后一列作为数字计数。请参阅?table
的帮助页面,然后查看“值”部分。 Tyler建议使用R-FAQ推荐的as.numeric(as.character(.))
转换策略是“标准R”。
答案 1 :(得分:0)
这是因为函数table
将参数转换为factor
(在您的控制台中键入table
,您会看到行a <- factor(a, exclude=exclude)
。
最好的解决方案就是做Tyler建议将table
的结果转换为data.frame