使用字符串列表R替换所有列值的有效方法
我有一个名为使用字符串列表R替换所有列值的有效方法,r,regex,string,list,R,Regex,String,List,我有一个名为car的数据框,正在尝试替换名为make的列中的某些值,该列包含许多独特的汽车品牌。我试图用低频率值替换包含在名为car\u list的字符列表中的任何值。但是,我只需要整个字符串替换,而不是使用边界完成的部分替换 “car”的“make”列如下所示: make "LANDROVER" "VOLKSWAGEN" "VAUXHALL" "MG-MOTOR UK" "ROVER"
car
的数据框,正在尝试替换名为make
的列中的某些值,该列包含许多独特的汽车品牌。我试图用低频率
值替换包含在名为car\u list
的字符列表中的任何值。但是,我只需要整个字符串替换,而不是使用边界完成的部分替换
“car”的“make”列如下所示:
make
"LANDROVER"
"VOLKSWAGEN"
"VAUXHALL"
"MG-MOTOR UK"
"ROVER"
"BWM"
"MG-MOTOR UK"
"ROVER"
"ROBIN"
“汽车列表”看起来是这样的:
make
"LANDROVER"
"VOLKSWAGEN"
"VAUXHALL"
"MG-MOTOR UK"
"ROVER"
"BWM"
"MG-MOTOR UK"
"ROVER"
"ROBIN"
I将make
中包含在car\u列表中的所有值替换为新值low\u 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'])}
for(车辆列表中的字符串){
汽车['make']使用更换
replace(car$make, car$make %in% car_list, "low_frequency")
# [1] "LANDROVER" "VOLKSWAGEN" "VAUXHALL" "low_frequency" "low_frequency" "BWM"
或使用“
这在函数中看起来像:
FUN <- function(x) replace(car[[x]], car[[x]] %in% car_list, "low_frequency")
FUN("make")
# [1] "LANDROVER" "VOLKSWAGEN" "VAUXHALL" "low_frequency" "low_frequency" "BWM"
FUN使用格式car['make']
有没有办法做到这一点?原因是如果我把它放在一个函数中,并用column
替换make
,以使解决方案在其他列中重现,我无法输入car$column
@geds133,我知道,您需要双[[
但是,请参见编辑。