基于两个数据帧 R 中多个条件的特定列的值

value of certain column based on multiple conditions in two data frames R

如上图,有df1和df2

如果你看一下 btime one df1 有 NA 我想用 all unique + stnseq = 1 填充 btime NA,因此只会填充每个 Unique 的第一个 NA

我希望它填充的值在 df2 中。条件是 all unique + boardstation = 8501970 在出发栏中添加值。

我试过聚合函数,但我不知道如何只为 boardstation 8501970 设置条件。

感谢任何人的帮助

如果我正确理解了问题,那么这可能会有所帮助。

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