假设我的数据框df低于
> df <- data.frame(value=c(1001, 1002, 1001, 1006, 1003, 1001, 1005))
> df
value
1 1001
2 1002
3 1001
4 1006
5 1003
6 1001
7 1005
我想对紧跟在值= 1001的行之后的所有行执行一些操作(比如mean())
我的直觉是
mean(df$value[(df$value==1001) +1])
但是这不起作用,而且我甚至不确定如何描述我尝试为Google做得好的事情。我确信解决方案很简单。感谢您的任何提示。
答案 0 :(得分:1)
你很亲密!缺少which
,如果最后一行的值为1001
,那么下一行会得到NA
(以及万一其他地方有NA
)需要na.rm = TRUE
。
mean(df$value[which(df$value == 1001) + 1], na.rm = TRUE)