对于每个由 'id' 定义的组,我想选择列 'x' 和 'y' 的第一行中的值,并用那个第一个值替换所有后续的值。
一些数据:
id Visit x y
1 1 0 1
1 2 1 2
1 3 2 8
2 9 1 11
2 10 12 14
我希望:
id Visit x y
1 1 0 1
1 2 0 1 # <- x & y replaced with first values of 'id' 1
1 3 0 1 #
2 9 1 11
2 10 1 11 # <- x & y replaced with first values of 'id' 2
我尝试了这个:
df1 <- df %>%
arrange(id, Visit) %>%
group_by(id) %>%
fill(x, y,
.direction = 'down',)
不过,似乎这样做还不够。有人能帮忙吗?
tidyr::fill
的作用是填充缺失值,而不是向下填充现有值。换句话说,它只在存在NA
时起作用。 - r2evans