<p>在R中使用<a href="/questions/tagged/dplyr" class="post-tag" title="show questions tagged 'dplyr'" rel="tag">dplyr</a>的解</p>
<pre><code>library(dplyr)
dat2 <- dat %>%
group_by(StudentID) %>%
mutate(Group = cumsum(Indicator %in% "Y")) %>%
filter(!Indicator %in% "Y") %>%
group_by(StudentID, Group) %>%
mutate(Max = max(Value)) %>%
ungroup() %>%
select(-Group) %>%
as.data.frame(stringsAsFactors = FALSE)
dat2
# StudentID Indicator Value Max
# 1 100 N 30 35
# 2 100 N 35 35
# 3 100 N 28 35
# 4 100 N 29 60
# 5 100 N 60 60
# 6 200 N 40 40
# 7 200 N 35 40
# 8 200 N 24 35
# 9 200 N 35 35
</code></pre>
<p><strong>数据</strong></p>
<pre><code>dat <- read.table(text = "StudentID Indicator Value
100 N 30
100 N 35
100 N 28
100 Y 20
100 N 29
100 N 60
200 N 40
200 N 35
200 Y 20
200 N 24
200 N 35 ",
header = TRUE, stringsAsFactors = FALSE)
</code></pre>