【发布时间】:2019-11-21 16:00:47
【问题描述】:
刚接触 R 和一般编程;我正在尝试计算每个组中观察到的值 > N 的行数,直到观察到值 >=,此时计数会重置。
data <- tibble(id=1:10,
val=c(1,5,6,1,2,1,300,4,1,300),
group=c(1,1,1,3,2,1,1,1,1,3))
What my table looks like:
id val group
1 1 1
2 5 1
3 6 1
4 1 3
5 2 2
6 1 1
7 300 1
8 4 1
9 1 1
10 300 3
例如,我想计算行数,直到我看到值 > 100,然后重置计数:
id val group count
1 1 1 0
2 5 1 1
3 6 1 2
4 1 3 0
5 2 2 0
6 1 1 3
7 300 1 4
8 4 1 0
9 1 1 1
10 300 3 1
我曾考虑添加一个额外的列并将其汇总,直到观察到条件,但我认为这不会像我期望的那样起作用。
data_count <- mutate(data, c=1)
data_count <- grouped_by(data_count) %>% mutate(count=ifelse(val>100, cumsum(c), 0)
id val group count
1 1 1 1
2 5 1 1
3 6 1 1
4 1 3 1
5 2 2 1
6 1 1 1
7 300 1 1
8 4 1 1
9 1 1 1
10 300 3 1
谢谢!
【问题讨论】:
-
你从哪里得到
grouped_by?