使用group_by

时间:2017-05-01 09:57:10

标签: r dplyr

我正在尝试用NA替换我的观察结果。我想仅针对由给定ID表示的每个组的前两个观察值替换NA。

所以来自:

      id          b
1     1  0.1125294
2     1 -0.6871102
3     1  0.1721639
4     2  0.2714921
5     2  0.1012665
6     2 -0.3538989

得到:

      id          b
1     1  NA
2     1  NA
3     1  0.1721639
4     2  NA
5     2  NA
6     2 -0.3538989

试过这个,但它不起作用......

data<- data %>% group_by(id) %>% mutate(data$b[1:2] = NA)

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

library(dplyr)
df <- data.frame(id = rep(1:2, each = 3), value = rnorm(6))
df %>% group_by(id) %>% mutate(value=replace(value, 1:2, NA))