【问题标题】:value of certain column based on multiple conditions in two data frames R基于两个数据帧R中的多个条件的特定列的值
【发布时间】:2018-03-22 07:58:00
【问题描述】:
如上图,有df1和df2
如果您查看 btime one df1 ,则有 NA
我想用 all unique + stnseq = 1 填充 btime NA,因此只会填充每个 Unique 的第一个 NA
我希望它填充的值是 df2。条件是 all unique + boardstation = 8501970 在离开列中添加值。
我已经尝试过聚合函数,但我不知道如何只为 boardstation 8501970 设置条件。
感谢任何人的帮助
【问题讨论】:
标签:
r
multiple-conditions
【解决方案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