如何计算基于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