[英]Add FLAG based on certain condition in the data frame
df <-
ID AMT
1 NA
1 50
1 NA
2 NA
2 NA
2 50
dfout <-
ID AMT FLAG
1 NA 1
1 50 0
1 NA 0
2 NA 1
2 NA 1
2 50 0
對於每個主題ID,當AMT為NA時添加FLAG==1
,直到存在AMT> 0的行,然后該主題的其余FLAG為0。例如,對於FLAG==1
以上'df'的主題FLAG==1
當AMT為NA時,應該為第一行給出。 但是,盡管同一主題的最后一行是NA,但FLAG應該為零,因為我們在此之前達到AMT> 0。
由於我有大量數據集,因此如何在R中執行此操作。
這是可以完成的一種方法:
library(tidyverse)
df <- tribble(
~ID, ~AMT,
1, NA,
1, 50,
1, NA,
2, NA,
2, NA,
2, 50)
df %>%
rownames_to_column() %>%
group_by(ID) %>%
mutate(x = as.numeric(rowname < min(rowname[!is.na(AMT)])))
#> # A tibble: 6 x 4
#> # Groups: ID [2]
#> rowname ID AMT x
#> <chr> <dbl> <dbl> <dbl>
#> 1 1 1 NA 1
#> 2 2 1 50 0
#> 3 3 1 NA 0
#> 4 4 2 NA 1
#> 5 5 2 NA 1
#> 6 6 2 50 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.