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

时间:2015-03-19 16:53:01

标签: r loops row

在某种情况下,我无法在数据框中添加多行。

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

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),])}

适用于第一次插入,但由于每次添加新行时行号都会改变,因此对其余行不起作用。

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

非常感谢你!

亲切的问候

1 个答案:

答案 0 :(得分:0)

你可以尝试

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