3 回答
TA贡献1786条经验 获得超11个赞
我已经知道了:
as.data.frame.matrix(mytable)
满足我的需要-显然,该表需要以某种方式转换为矩阵,以便适当地转换为数据帧。我在Computational Ecology博客上发现了有关列联表as.data.frame.matrix()函数的更多详细信息。
TA贡献1829条经验 获得超9个赞
尽管在这种情况下结果会有所不同,因为列名是数字,但我使用的另一种方法是data.frame(rbind(mytable))。使用@XX中的示例:
> freq_t = table(cyl = mtcars$cyl, gear = mtcars$gear)
> freq_t
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
> data.frame(rbind(freq_t))
X3 X4 X5
4 1 8 2
6 2 4 1
8 12 0 2
如果列名不是以数字开头,则不X会将其添加到它们的前面。
TA贡献1775条经验 获得超8个赞
简短的答案:使用as.data.frame.matrix(mytable)@Victor Van Hee建议的。
长答案:as.data.frame(mytable)可能无法在table()函数生成的列联表上使用,即使is.matrix(your_table)return TRUE。它仍然会将您的表融为一体factor1 factor2 factori counts。
例:
> freq_t = table(cyl = mtcars$cyl, gear = mtcars$gear)
> freq_t
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
> is.matrix(freq_t)
[1] TRUE
> as.data.frame(freq_t)
cyl gear Freq
1 4 3 1
2 6 3 2
3 8 3 12
4 4 4 8
5 6 4 4
6 8 4 0
7 4 5 2
8 6 5 1
9 8 5 2
> as.data.frame.matrix(freq_t)
3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
- 3 回答
- 0 关注
- 608 浏览
添加回答
举报