在条件下编辑列

Flo*_*oni 1 r conditional-statements

我有一张桌子:

  id <- c(1,1,2,2,2,2,2,3,3,4,4,5,5,5)
  dist <- c(0,1,1,0,2,15,0,4,4,0,5,5,16,2)
  data <- data.frame(id, dist )
Run Code Online (Sandbox Code Playgroud)

id当dist高于某个值时,我想编辑该列(假设为10).我想添加+1什么时候data$dist >10

最终的输出是:

  data$id_new <-  c(1,1,2,2,2,3,3,4,4,5,5,6,7,7)
Run Code Online (Sandbox Code Playgroud)

是否有可能用if循环做某事?我尝试了循环但我仍然没有成功.

zx8*_*754 6

也许使用cumsum:

data$new_id <- data$id + cumsum(data$dist > 10)
Run Code Online (Sandbox Code Playgroud)

说明:

cumsum(data$dist > 10)将返回data$dist大于10 的索引的累积和.您可以通过在R中将表达式分开并查看每个部分的工作原理来查看其工作原理.