我在R中有一个数据框,它有一列字符串/字符。我打电话给这个" myDat"下方。
我在R中有另一个数据框,它有两列字符串/字符。我称之为" conversionDat"下面。一列("名称")包含与" myDat"中的列类似的名称。另一列(" Name2")包含" myDat"列应转换为。
这是这两个数据框的MWE:
myDat <- data.frame(Name = c("A","D","P","R"))
conversionDat <- data.frame(Name = c("D","R","A","P"), Name2 = c("S","T","B","Z"))
myDat$Name <- as.character(myDat$Name)
conversionDat$Name <- as.character(conversionDat$Name)
conversionDat$Name2 <- as.character(conversionDat$Name2)
我想找到任何案例&#34; myDat&#34;等于&#34; conversionDat $ Name&#34;中的值并将其转换为&#34; conversionDat $ Name2&#34;。因此,在上面的MWE中,&#34; conversionDat&#34;数据框将保持不变,但是&#34; myDat&#34;数据框将成为:
B2
S2
Z2
T2
有没有一种无痛的方法可以做到这一点?任何想法将不胜感激!
答案 0 :(得分:1)
一个无痛的方法是简单地合并两个,然后在Name2列中添加你需要的“2”?
myDat <- data.frame(Name = c("A","D","P","R"))
conversionDat <- data.frame(Name = c("D","R","A","P"), Name2 = c("S","T","B","Z"))
myDat <- merge(myDat, conversionDat, by = "Name")
myDat$Name2 <- paste(myDat$Name2, "2", sep = "")
> myDat
Name Name2
1 A B2
2 D S2
3 P Z2
4 R T2