【发布时间】:2015-08-19 19:42:03
【问题描述】:
很长一段时间以来,我使用类似于以下的代码来根据“查找”表中的匹配替换向量中的值。在此示例中,如果 input 对象中的值与 key 的第二列中的任何值匹配,我将用 key 对象中的相应值替换它们。
key<-cbind(c("one","one","two","three","four","five"),c("one1","one11","two2","three3","over","over"))
input<-c("one1","one11","three","four","five")
input[which(!is.na(match(key[,2],input)))]<-key[!is.na(match(key[,2],input)),1]
有没有更有效的方法来实现这一点? merge 函数似乎不起作用。当key 和input 之间没有一对一匹配时,方法here 不起作用。
【问题讨论】:
-
一个更好的方法是使用像
dplyr::left_join这样的连接
标签: r