根据与另一个数据框的值匹配在数据框上创建新列

时间:2018-07-30 15:26:25

标签: r dataframe

我有一个名为“ INDEX”的数据框和一个名为“ TABLE”的数据框。

我希望能够在“表”中添加一个名为“ ID”的新列,其中将包括“ INDEX”数据帧的相对“ ID”。

例如,“ Mark1”与ID = 1匹配,以此类推。最终结果将是:

Mark2 ID
1 Mark4  4
2 Mark4  4
3 Mark3  3
4 Mark1  1
5 Mark2  2 



    ID<-c("1","2","3","4")
    Mark=c("Mark1","Mark2","Mark3","Mark4")
    INDEX=data.frame(ID,Mark)

    Mark2=c("Mark4","Mark4","Mark3","Mark1","Mark2")
    TABLE=data.frame(Mark2)

    for(i in 1:nrow(TABLE)){
      if(INDEX[,1]==TABLE[i,1]){
        TABLE$ID<-INDEX$ID
      }
    }

1 个答案:

答案 0 :(得分:1)

使用match

TABLE$ID=INDEX$ID[match(TABLE$Mark2,INDEX$Mark)]

TABLE
  Mark2 ID
1 Mark4  4
2 Mark4  4
3 Mark3  3
4 Mark1  1
5 Mark2  2