我正在数据框中创建 15 行,如下所示。我无法显示我的真实代码,但创建行函数涉及可以放入函数中的复杂计算。关于如何使用 lapply、apply 等并行创建所有 15 个行,然后将所有行连接到一个数据帧中,有什么想法吗?我认为使用 lapply 会起作用(即将所有行放入列表中,然后取消列表并连接,但不完全确定如何执行此操作)。
for( i in 1:15 ) {
row <- create_row()
# row is essentially a dataframe with 1 row
rbind(my_df,row)
}
最佳答案
这样的东西应该适合你,
create_row <- function(){
rnorm(10, 0,1)
}
my_list <- vector(100, mode = "list")
my_list_2 <- lapply(my_list, function(x) create_row())
data.frame(t(sapply(my_list_2,c)))
create_row
函数只是使示例可重现,然后我们预定义一个空列表,然后用 create_row()
函数的结果填充它,然后将结果列表到数据框。
或者,预定义一个矩阵并在行边距上使用 apply
函数,然后使用 t
(转置)函数,以获得正确的输出,
df <- data.frame(matrix(ncol = 10, nrow = 100))
t(apply(df, 1, function(x) create_row(x)))
关于r - 并行计算 15 行(通过矢量化)并用它们创建 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56100999/