【问题标题】:Add a new column to dataframe after comparing the values of other columns比较其他列的值后向数据框添加新列
【发布时间】:2020-11-13 08:33:49
【问题描述】:

我有下面的数据框:

def<-c("BAL","DEN","DEN")
home<-c("DEN","DEN","BAL")
away<-c("BAL","BAL","DEN")

def home away
1 BAL  DEN  BAL
2 DEN  DEN  BAL
3 DEN  BAL  DEN

我的目标是创建一个名为 def2 的新列,其中将包含与 def 列中包含的团队相反的团队。为了找到该团队的名称,它应该检查homeaway 列的值。最终的数据集应该是这样的:

def home away def2
1 BAL  DEN  BAL  DEN
2 DEN  DEN  BAL  BAL
3 DEN  BAL  DEN  BAL

【问题讨论】:

    标签: r dataframe conditional-statements


    【解决方案1】:

    如果 df 是您的数据框,则可以在基础 R 中使用

    df$def2 <- ifelse(df$def == df$home, df$away, df$home)
    #   def home away def2
    # 1 BAL  DEN  BAL  DEN
    # 2 DEN  DEN  BAL  BAL
    # 3 DEN  BAL  DEN  BAL
    

    如果您在dplyr 管道中,则可以使用

    library(dplyr)
    df %>% mutate(def2 = if_else(def == home, away, home))
    

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-13
      • 2017-01-14
      • 2021-07-27
      相关资源
      最近更新 更多