合并具有条件R的两个表

时间:2018-02-02 16:17:29

标签: r dataframe

嗨,这是一个初学者的问题!我需要一些关于覆盖特定包机标签的帮助,基于Class-column的值。

如果Class-column中的标签显示" Sport"体育级的价值。请参阅下面的示例。

我尝试使用ifelse声明:

DF$Class<-ifelse((DF$Class %in% "Sport"), DF$SportClass, DF$Class)

我有两列,而我想要的输出是&#34;列:期望&#34;

ID:      Class:     SportClass:  |  (Expetions)
1        Movie      Hockey       |   Movie
2        Seriers    Fotboll      |   Series
3        Movie      Tennsi       |   Movie
4        Sport      Golf         |   Golf

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

确保您使用的是数据框的正确列名,并且您的变量不是因素,因为这些级别不匹配且您的流程会中断。

使用以下数据框

DF = read.table(text = "
ID      Class     SportClass
1        Movie      Hockey    
2        Seriers    Fotboll     
3        Movie      Tennsi      
4        Sport      Golf         
", header=T, stringsAsFactors=F)

我可以成功更新变量/列Class

# dataset before
DF

#   ID   Class SportClass
# 1  1   Movie     Hockey
# 2  2 Seriers    Fotboll
# 3  3   Movie     Tennsi
# 4  4   Sport       Golf

# update variable
DF$Class <- ifelse(DF$Class %in% "Sport", DF$SportClass, DF$Class)

# dataset after
DF

#   ID   Class SportClass
# 1  1   Movie     Hockey
# 2  2 Seriers    Fotboll
# 3  3   Movie     Tennsi
# 4  4    Golf       Golf

请注意,您不必在DF$Class %in% "Sport"附近使用括号,并且在这种情况下您也可以使用DF$Class == "Sport"