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