【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 2019-10-22
      • 2018-01-28
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2015-04-11
      • 2021-09-04
      • 2020-10-10
      相关资源
      最近更新 更多