【发布时间】:2021-05-25 15:16:02
【问题描述】:
我试图在每次迭代后附加一个 for 循环的结果,该循环会产生一个不同长度的向量。我需要在每列中并排显示每个循环的结果。这是我得到的错误:
data.frame(..., check.names = FALSE) 中的错误: 参数暗示不同的行数:0, 3650
我已经用相同大小的向量对此进行了测试,但我得到了同样的错误。我尝试了一些我在这里找到的解决方案:Append data frames together in a for loop 但没有成功,其中一些有效,但结果出现在单个列中。我该如何解决这个问题?
d = NULL
for (i in 1:10) {
# vector output
model <- # vector with different length for each iteration
# add vector to a dataframe
df <- data.frame(model)
}
df_total <- cbind(d,df)
【问题讨论】:
-
请参考我们关于可重现示例的指南:stackoverflow.com/a/5963610/6574038
-
1) 在循环中,您正在重写
df10 次,只有最后一个是cbinded 和d; 2) 错误消息显示 "Error etc number of rows: 0, 3650" 实际上d <- NULL有 0 行。因此,在最后一次迭代中,您的模型必须生成具有 3650 行的df。 -
3) 考虑
d <- lapply(1:10, function(i) {model <- code; data.frame(model)}); df_total <- do.call(cbind, d)。 -
谢谢Rui,您的解决方案解决了初始错误,但现在我有另一个错误。我的向量有不同的长度,所以我不能使用 cbind。你能帮我换一种方法吗?
标签: r