我的数据框mydata
包含2列Col1
和Col2
,我需要创建第三列Col3
,它通过比较{{}来增加值1}}和Col1
即如果Col2
中的值>> = 20且col1
> = 15中的值,则col2
中的值应增加1及以下行应该保持相同的值,直到它遇到相同的条件
col3
如下所示
Dataframe
结果数据框应
col1 col2
10 3
21 4
15 17
22 16
09 78
这是我在R的第一个项目。
答案 0 :(得分:0)
我们可以在逻辑cumsum
vector
mydata$col3 <- with(mydata, cumsum(col1 >=20 & col2 >=15))
mydata$col3
#[1] 0 0 0 1 1 1 2 2 3
mydata <- structure(list(col1 = c(10L, 21L, 15L, 22L, 9L, 7L, 23L, 24L,
24L), col2 = c(3L, 4L, 17L, 16L, 96L, 78L, 17L, 10L, 20L)),
.Names = c("col1",
"col2"), row.names = c(NA, -9L), class = "data.frame")