用另一个数据框的值替换数据框列中的值

时间:2019-01-05 16:41:44

标签: r replace

我目前在一些房屋数据方面面临以下问题。我有一个数据框,其中包含超过100,000个观察值。对于每个观察,都有一个邮政编码。假设数据框看起来如下

size <- c(20, 30, 40, 50, 30, 45, 60)
rent <- c(100, 200, 300, 400, 350, 460, 700)
ZIP <- c(1000, 1500, 2000, 2500, 1500, 2000, 2500)
df <- data.frame(size, rent, ZIP)

我想将其他邮政编码级别替换为其他值(自行构建类别)。这些其他值/类别存储在另一个数据帧中,该数据帧将新值分配给每个邮政编码级别。说数据框看起来如下:

ZIP_levels <- c(levels(ZIP))
ZIP_New <- c(1, 1, 2, 2)
df2 <- data.frame(ZIP_levels, ZIP_New)

如何创建类似于VLOOKUP的东西,可以轻松地将df中的ZIP值替换为df2中的ZIP_New值?

1 个答案:

答案 0 :(得分:0)

使用dplyr

的解决方案
library(dplyr)

df_new <- left_join(df, df2, by = "ZIP")
bf_new$ZIP <- NULL