将表格转换为data.frame的最佳方法?

时间:2015-07-18 03:14:17

标签: r

假设有人希望将频率table作为data.frame对象,转换它的最佳方法是什么?我尝试了一些想法并想出了一个复杂的解决方案,我想知道是否有更好的方法。

首先我们生成一些数据:

set.seed(1)
test_df = data.frame(X = sample(0:1, 100, T),
                     Y = sample(0:1, 100, T))
p = table(test_df)
p2 = prop.table(p)

我对prop.table()输出感兴趣,但它同样适用于频率table。它看起来像这样:

> p2
   Y
X    0  1
  0 28 18
  1 34 20

as.data.frame()有效,但会以长格式返回结果:

> as.data.frame(p2)
  X Y Freq
1 0 0   28
2 1 0   34
3 0 1   18
4 1 1   20

as.matrix()什么都不做:

> class(as.matrix(p2))
[1] "table"

最后,一个有效的方法:

prop_table = as.data.frame(matrix(as.vector(p2), nrow = 2))
colnames(prop_table) = rownames(prop_table) = rownames(p2)

输出:

> prop_table
   0  1
0 28 18
1 34 20

更好的想法?

0 个答案:

没有答案