我有两个数据框架,df
和counties
。我想用df
数据框中的fips
列替换counties
的第3列和后列中的坐标。
df =
year location location_NN_1 location_NN_2 location_NN_3
2076 43.59375_-116.78125 41.15625_-90.65625 41.21875_-90.65625 41.15625_-90.65625
2077 43.59375_-116.78125 43.34375_-78.15625 43.34375_-78.21875 43.28125_-78.15625
2078 43.59375_-116.78125 41.34375_-90.78125 41.21875_-90.65625 41.53125_-73.96875
2079 43.59375_-116.78125 43.53125_-116.78125 41.34375_-90.78125 <NA>
2080 43.59375_-116.78125 <NA> <NA> <NA>
counties =
fips location
36073 43.34375_-78.15625
17161 41.34375_-90.78125
我希望输出看起来像:
output
year location location_NN_1 location_NN_2 location_NN_3
2076 43.59375_-116.78125 17131 so_on so_on
2077 43.59375_-116.78125 36073 so_on so_on
2078 43.59375_-116.78125 17161 so_on so_on
2079 43.59375_-116.78125 so_on, so_forth so_on <NA>
2080 43.59375_-116.78125 <NA> <NA> <NA>
也许像this solution这样的东西会起作用。我不想使用,因为它使用plyr
,我没有plyr
的良好经验。加载它会弄乱其他库。
任何解决方案将不胜感激。
我们可以选择感兴趣的列,使用lapply
,match
和'县'的'location'列循环遍历列,以获得匹配的数字索引,然后根据它获得相应的'fips'值,并更新数据集列([]
)
df[3:5] <- lapply(df[3:5], function(x) counties$fips[match(x, counties$location)])