我正在使用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的尺寸?我在之前的问题中四处查看,并没有看到有人解决这个问题。
答案 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
,则会得到我认为您期望的行为。