在 R 数据框中有条件地添加多行(循环)

Adding multiple rows conditonally in R data frame (loop)

我无法在特定条件下将多行添加到数据框中。

我的数据集看起来像这样:

ID TIME DV
1   0.5 1
1   2   2.3
1   30  0.02
1   35  0.01
2   0.4 0.9
2   2   2.8
2   30  0.01 

现在我想在 TIME >30 的条件下为多个 ID 添加行。

输出应如下所示

ID TIME DV
1   0.5 1
1   2   2.3
1   30  0.02
1   35  0.01
1   100 0
2   0.4 0.9
2   2   2.8
2   30  0.01 

我试过以下代码:

cond <- data2[data2$TIME > 30,] cond_1 <- rownames(cond) for(i in cond_1){data2 <- rbind(data2[1:i,],newrow,data2[-(1:i),])}

这适用于第一次插入,但由于行号随着每次添加新行而改变,因此它不适用于其余部分。

不幸的是,我不知道如何解决这个问题,而且数据集太大,无法手动完成...

非常感谢您!

亲切的问候

你可以试试

 library(data.table)
 setDT(data2)
 rbind(data2, data2[, .SD[TIME>30] , ID] [, 2:3 := NA])