如果你看一下btime,一个df1就有NA 我想用所有唯一+ stnseq = 1 来填充btime NAs,因此只会填充每个Unique的第一个NA
我希望它填充的值是df2。条件是所有唯一+ boardstation = 8501970 在出发列中添加值。
我已经尝试过聚合功能,但我不知道如何只为boardstation 8501970制作条件。
感谢任何人的帮助
答案 0 :(得分:1)
如果我正确理解了这个问题,那么这可能有所帮助。
library(dplyr)
df2 %>%
group_by(unique) %>%
summarise(departure_sum = sum(departure[boardstation==8501970])) %>%
right_join(df1, by="unique") %>%
mutate(btime = ifelse(is.na(btime) & stnseq==1, departure_sum, btime)) %>%
select(-departure_sum) %>%
data.frame()
由于样本数据是图像格式,我自己制作了如下数据:
df1
unique stnseq btime
1 1 1 NA
2 1 2 NA
3 2 1 NA
4 2 2 200
df2
unique boardstation departure
1 1 8501970 1
2 1 8501970 2
3 1 123 3
4 2 8501970 4
5 2 456 5
6 3 900 6
输出为:
unique stnseq btime
1 1 1 3
2 1 2 NA
3 2 1 4
4 2 2 200