转换为data.frame时保持表的维度

时间:2015-01-14 21:12:10

标签: r

我正在使用xlsx包将表写入excel文件。我想使用xlsx包,所以我可以写多个标签。 xlsx将表转换为data.frames,这样做会改变维度。

b <- sample( c("bob", "mark", "joanna"), 100, replace=TRUE) 
a <- c( sample( 1:5, 100, replace=TRUE) ) 
a <- data.frame( a , b)

d <- table( a$a , a$b )

e <- data.frame(d)

print (e)
print(d)

看看d的尺寸与e的不同。在转换时是否有一种简单的方法来保持d的尺寸?我在之前的问题中四处查看,并没有看到有人解决这个问题。

1 个答案:

答案 0 :(得分:2)

您可能正在寻找as.data.frame.matrix

> as.data.frame.matrix(d)
  bob joanna mark
1   1      7    9
2  10      7    4
3   4      6   14
4   6      8   11
5   5      7    1

在不同类型的输入上调用data.frame时,会使用不同的“方法”。运行methods("as.data.frame")以查看其中的列表。查看该列表,您会看到table的特定方法。只需输入as.data.frame.table即可查看该代码。如果您将table视为matrix,则会得到我认为您期望的行为。