Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用字符串列表R替换所有列值的有效方法_R_Regex_String_List - Fatal编程技术网

使用字符串列表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,我知道,您需要双
[[
但是,请参见编辑。