首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用字符串列表R替换所有列值的有效方法

使用字符串列表R替换所有列值的有效方法
EN

Stack Overflow用户
提问于 2020-09-23 15:35:23
回答 1查看 102关注 0票数 0

我有一个名为car的数据格式,并试图替换列中的某些值,该列包含许多独特的car makes。我试图用值car_list替换包含我的一个名为low_frequency的字符列表的任何值。然而,我只希望整个字符串替换,而不是部分,我已经做了使用边界。

“汽车”的“制造”栏看起来是这样的:

代码语言:javascript
运行
复制
 make
 "LANDROVER"
 "VOLKSWAGEN"
 "VAUXHALL"
 "MG-MOTOR UK"
 "ROVER"
 "BWM"

'car_list`看起来是这样的:

代码语言:javascript
运行
复制
"MG-MOTOR UK"
"ROVER"
"ROBIN"

我要将make中包含在car_list中的所有值替换为新值low_frequency。输出应该是这样的:

代码语言:javascript
运行
复制
 make
 "LANDROVER"
 "VOLKSWAGEN"
 "VAUXHALL"
 "low_frequency"
 "low_frequency"
 "BWM"

我的尝试是使用gsub和一个for循环,因为我习惯于python,但我知道这在R和解决方案崩溃中是错误的做法:

代码语言:javascript
运行
复制
for (string in car_list){
  car['make'] <- gsub(paste('\\b', string, '\\b', sep = ''), 'low_frequency', car['make'])}

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-23 15:39:51

使用replace

代码语言:javascript
运行
复制
replace(car$make, car$make %in% car_list, "low_frequency")
# [1] "LANDROVER"     "VOLKSWAGEN"    "VAUXHALL"      "low_frequency" "low_frequency" "BWM"

或使用""

代码语言:javascript
运行
复制
replace(car[["make"]], car[["make"]] %in% car_list, "low_frequency")

它看起来像这样的函数:

代码语言:javascript
运行
复制
FUN <- function(x) replace(car[[x]], car[[x]] %in% car_list, "low_frequency")
FUN("make")
# [1] "LANDROVER"     "VOLKSWAGEN"    "VAUXHALL"      "low_frequency" "low_frequency" "BWM"    

数据:

代码语言:javascript
运行
复制
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")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64031456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档