【发布时间】:2019-03-15 20:39:04
【问题描述】:
我正在尝试将转换 表格 数据框。
例子:
tbl <- structure(c(1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L), .Dim = c(4L, 2L), .Dimnames = structure(list(
c("1", "2", "3", "4"), colNames = c("2013 3", "2014 12")), .Names = c("", "colNames")), class = "table")
colNames
2013 3 2014 12
1 1 1
2 0 0
3 0 0
4 0 0
转换为数据框会导致完全不同的数据结构。为什么?
as.data.frame(tbl)
Var1 colNames Freq
1 1 2013 3 1
2 2 2013 3 0
3 3 2013 3 0
4 4 2013 3 0
5 1 2014 12 1
6 2 2014 12 0
7 3 2014 12 0
8 4 2014 12 0
【问题讨论】:
-
我不相信这是一个 dup @Jilber Urbina,因为 OP 想知道 为什么
-
来自
?as.data.frame.table:“从类“table”继承的对象的as.data.frame方法可用于将列联表的基于数组的表示转换为包含分类的数据框因素和相应的条目(后者作为由 responseName 命名的组件)。” 我认为这只是意味着它是一种设计选择。 (也就是说,它并没有真正回答“为什么”) -
不清楚这里的“为什么”是什么意思。对于具有多于或少于两个维度的表(例如
table(mtcars[9:11])),有什么替代方案可以始终如一地表现?