在 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])
我无法在特定条件下将多行添加到数据框中。
我的数据集看起来像这样:
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])