使用基数R根据查找表匹配char--例如,plyr::revalue

ars1skjm  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(97)

我希望使用R基重现plyr::revalue的行为。我想根据查找表替换下面foo的值。plyr::revalue做了我想要的事情。如何在R基中实现这一点的提示?很高兴使用data.frame或命名向量进行查找。

lookupDF <- data.frame(shortName=c("app","or","ba","ma","unk"),
                       longName=c("Apple", "Orange", "Banana", "Mango", "Something Else"))

lookupVec <- lookupDF$longName
names(lookupVec) <- lookupDF$shortName

foo <- c("or","app","def","app","abc","ban")
plyr::revalue(foo,lookupVec)
3vpjnl9f

3vpjnl9f1#

根据评论,我认为这应该可行。

bar <- lookupVec[foo]
bar[is.na(bar)] <- foo[is.na(bar)]
names(bar) <- NULL
bar

非常感谢!

相关问题