【发布时间】:2021-01-14 04:05:54
【问题描述】:
我有一堆行要添加到一个更大的数据框中,称为更大的_false。我想使用 for 循环来做到这一点。 每行如下所示:
new_row1 <- c(402, 1, "false alarm", 0)
我想为较大数据框的列的每个新行分配名称,因此我循环遍历列表中的每一行并为每个行分配相同的名称。
rowlist = list(new_row1, new_row2, new_row3, new_row4, new_row5, new_row6, new_row1011, new_row1014, new_row1016, new_row1022, new_row1023, new_row2021, new_row3046)
for (item in rowlist) {
names(item) <- c("guest_id", "sessionNum", "interactions.hitType", "n")
}
然后我循环遍历每个并将它们添加到已经有这些列名的大数据框中。
for (item in rowlist) {
bigger_false <- rbind(bigger_false, item)
}
现在,第一个循环似乎适用于第一行(它成功地分配了名称)。所以如果我手动做
bigger_false <- rbind(bigger_false, new_row1)
我没有错误。但是,第一个循环的其余部分没有成功地为其余的行分配名称,因此 rbind 循环在第一次迭代后给出错误:“Argument 2 must have names”。
为什么会这样?提前致谢。
【问题讨论】:
-
我不认为这完全是重复的,但是像this one 这样的几个 SO 帖子应该有助于如何从循环中分配回值。完整的reproducible example 可以更轻松地帮助/指向以前的 SO 帖子