如何计算基于R中的过滤器
我需要基于一个过滤器操作我需要应用该组如何计算基于R中的过滤器
DF
id dg cs 1 s 1 
1 v 0 
2 s 0 
2 v 1 
2 s 1 
2 s 0 
3 s 1 
3 s 1 
3 v 1 
一组数的记录数的记录数我需要在“dg”中的“v”之前统计(或标记)'dg-cs'字段中出现's-1'组合的记录数。
因此,出认沽将
id dg cs output 1 s 1 True 
1 v 0 False 
2 s 0 False 
2 v 1 False 
2 s 1 False 
2 s 0 False 
3 s 1 True 
3 s 1 True 
3 v 1 False 
回答:
我的做法是以下几点:
library(dplyr) df %>% 
    group_by(id) %>% 
    mutate(out = dg == "s" & cs == 1 & cumsum(dg == "v") == 0) 
## A tibble: 9 x 4 
## Groups: id [3] 
#  id dg cs out 
# <int> <chr> <int> <lgl> 
#1  1  s  1 TRUE 
#2  1  v  0 FALSE 
#3  2  s  0 FALSE 
#4  2  v  1 FALSE 
#5  2  s  1 FALSE 
#6  2  s  0 FALSE 
#7  3  s  1 TRUE 
#8  3  s  1 TRUE 
#9  3  v  1 FALSE 
的部分cumsum(dg == "v") == 0意味着如果dg=="v"还没有出现针对特定ID只能是真实的。
以上是 如何计算基于R中的过滤器 的全部内容, 来源链接: utcz.com/qa/262783.html






