我有下面的数据框:
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
列中包含的团队相反的团队。为了找到该团队的名称,应该检查 home
和 away
列的值。最终的数据集应该是这样的:
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/