r - dplyr mutate refer new column itself

后端 未结 2 652
滥情空心
滥情空心 2021-01-26 23:42

I have a data frame like this named \'a\'.

   ID        V1
   1         -1 
   1          0 
   1          1 
   1        1000 
   1          0 
   1          1
         


        
2条回答
  •  故里飘歌
    2021-01-27 00:06

    We can try

    a %>%
         group_by(ID) %>% 
         mutate(V2 = cumsum(V1 >= 1000)+1L)
    #     ID    V1    V2
    #    
    #1     1    -1     1
    #2     1     0     1
    #3     1     1     1
    #4     1  1000     2
    #5     1     0     2
    #6     1     1     2
    #7     2    -1     1
    #8     2     0     1
    #9     2  1000     2
    

    data

    a <- structure(list(ID = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L), 
    V1 = c(-1L, 
    0L, 1L, 1000L, 0L, 1L, -1L, 0L, 1000L)), .Names = c("ID", "V1"
    ), class = "data.frame", row.names = c(NA, -9L))
    

提交回复
热议问题