在下面的示例中,userids
是我的参考数据框,而userdata
是应该进行替换的数据框。
> userids <- data.frame(USER=c('Ann','Jim','Lee','Bob'),ID=c(1,2,3,4))
> userids
USER ID
1 Ann 1
2 Jim 2
3 Lee 3
4 Bob 4
> userdata <- data.frame(INFO=c('foo','bar','foo','bar'), ID=c('Bob','Jim','Ann','Lee'),AGE=c('43','33','53','26'), FRIENDID=c('Ann',NA,'Lee','Jim'))
> userdata
INFO ID AGE FRIENDID
1 foo Bob 43 Ann
2 bar Jim 33 NA
3 foo Ann 53 Lee
4 bar Lee 26 Jim
如何用
userdata
中与USER对应的ID替换userids
中的ID和FRIENDID?所需的输出:
INFO ID AGE FRIENDID
1 foo 4 43 1
2 bar 2 33 NA
3 foo 1 53 3
4 bar 3 26 2
最佳答案
使用match
:
userdata$ID <- userids$ID[match(userdata$ID, userids$USER)]
userdata$FRIENDID <- userids$ID[match(userdata$FRIENDID, userids$USER)]
关于r - 根据R中的其他数据框替换数据框中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15069984/