我很好奇是否有一种无需定义尺寸即可填充空白数据框的方法。在我不知道最终结果将是多大的情况下,这对我可能很有用。
foo <- data.frame()
for (i in 1:5){
foo[, i] <- sample(1:10, 10, replace = TRUE)
}
这给出了错误
Error in [<-.data.frame(*tmp*, , i, value = c(1L, 7L, 9L, 9L, 6L, :
replacement has 10 rows, data has 0
我知道您可以定义尺寸,并且可以使用以下尺寸,但是我想知道是否还有其他方法可以不必这样做。
foo <- data.frame(matrix(nrow = 10, ncol = 0))
答案 0 :(得分:0)
一种方法可能是
foo <- data.frame()
for (i in 1:5) foo <- rbind(foo, sample(1:10, 10, replace = TRUE))
等效于
for (i in 1:5) foo[i,] <- sample(1:10, 10, replace = TRUE)
然后,对其进行转置,即可获得所需的内容,即
> t(foo)
1 2 3 4 5
X.1 8 6 8 1 9
X.2 4 3 4 3 1
X.3 6 2 1 3 7
X.4 10 7 8 4 1
X.5 3 4 6 3 1
X.6 4 4 5 4 2
X.7 9 5 5 3 8
X.8 9 1 4 7 1
X.9 7 4 4 5 9
X.10 5 4 2 2 6
(如前所述,只要可行,您可能希望定义foo
的大小和结构,因为它会使代码更有效)。