我有一个名为car的数据格式,并试图替换列中的某些值,该列包含许多独特的car makes。我试图用值car_list替换包含我的一个名为low_frequency的字符列表的任何值。然而,我只希望整个字符串替换,而不是部分,我已经做了使用边界。
“汽车”的“制造”栏看起来是这样的:
make
"LANDROVER"
"VOLKSWAGEN"
"VAUXHALL"
"MG-MOTOR UK"
"ROVER"
"BWM"'car_list`看起来是这样的:
"MG-MOTOR UK"
"ROVER"
"ROBIN"我要将make中包含在car_list中的所有值替换为新值low_frequency。输出应该是这样的:
make
"LANDROVER"
"VOLKSWAGEN"
"VAUXHALL"
"low_frequency"
"low_frequency"
"BWM"我的尝试是使用gsub和一个for循环,因为我习惯于python,但我知道这在R和解决方案崩溃中是错误的做法:
for (string in car_list){
car['make'] <- gsub(paste('\\b', string, '\\b', sep = ''), 'low_frequency', car['make'])}任何帮助都将不胜感激。
发布于 2020-09-23 15:39:51
使用replace。
replace(car$make, car$make %in% car_list, "low_frequency")
# [1] "LANDROVER" "VOLKSWAGEN" "VAUXHALL" "low_frequency" "low_frequency" "BWM"或使用""
replace(car[["make"]], car[["make"]] %in% car_list, "low_frequency")它看起来像这样的函数:
FUN <- function(x) replace(car[[x]], car[[x]] %in% car_list, "low_frequency")
FUN("make")
# [1] "LANDROVER" "VOLKSWAGEN" "VAUXHALL" "low_frequency" "low_frequency" "BWM" 数据:
car <- structure(list(make = c("LANDROVER", "VOLKSWAGEN", "VAUXHALL",
"MG-MOTOR UK", "ROVER", "BWM")), class = "data.frame", row.names = c(NA,
-6L))
car_list <- list("MG-MOTOR UK", "ROVER", "ROBIN")https://stackoverflow.com/questions/64031456
复制相似问题