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

回到顶部