转换为 data.frame 时保持 table 的尺寸

keep dimensions of table when converting to a data.frame

我正在使用 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 的尺寸?我环顾了之前的问题,没有看到有人解决这个问题。

您可能正在寻找 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"。 运行 methods("as.data.frame") 查看这些列表。查看该列表,您会看到 tables 有一个特定的方法。您只需键入 as.data.frame.table 即可查看该代码。如果您将 table 视为 matrix,您会得到我认为您期望的行为。