R 基于与另一个数据帧的值匹配,在数据帧上创建新列

R 基于与另一个数据帧的值匹配,在数据帧上创建新列,r,dataframe,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”的数据框和一个名为“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
      }
    }
Mark2-ID
1马克4
2马克4
3马克3
4马克1
5马克2

ID使用
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

TABLE$ID=INDEX$ID[match(TABLE$Mark2,INDEX$Mark)]
如果您将其添加为答案,我将接受它!嗨,又加了一句:-)~