r - 比较其他列的值后,向数据框中添加新列

标签 r dataframe conditional-statements

我有下面的数据框:

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

最佳答案

如果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))

关于r - 比较其他列的值后,向数据框中添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63057259/

相关文章:

r - 如何反转R中模式中数据帧的顺序

r - data.table:满足条件后删除所有行

r - 可视化 R 中的颜色/调色板列表

python - Pandas 索引列标题或名称

python - 如何从索引开始查找第一次出现的 bool 值

r - 在 R 中使用 rvest (或类似的)提取不止一种类型的元素,同时保留顺序?

python - 有条件替换 Pandas

python - 如何用最少的代码创建过滤后的 DataFrame

bash 条件扩展如 C 中一样

string - 数据帧切片