r - R根据部分字符串匹配重命名多个列 - 管道
问题描述
我有一个数据集,其中列名是调查问题,并且范围广泛,有时包含不同的标点符号。因此,我想将部分字符串匹配的所有列标题重命名为更合理的 var 名称。
我目前的尝试是:
df %>%
select_all(~str_replace(., "How would you describe your gender?", "cnt_gender"))
但是,这只会替换完全匹配的字符串并留下任何其他匹配项。例如:
Target string: "How would you describe your gender? (Select only one option)"
df %>%
select_all(~str_replace(., "How would you describe your gender?", "cnt_gender"))
Desired output string: "cnt_gender"
Actual output string: "cnt_gender (Select only one option)"
我正在寻找的是根据部分字符串匹配完全重命名列。
解决方案
您可以.*
在要替换的字符串之后使用来捕获可能潜伏在外面的任何其他内容(包括任何内容)。
Target_strings <- c("How would you describe your gender? (Select only one option)",
"How would you describe your gender?")
str_replace(Target_strings, "How would you describe your gender?.*", "cnt_gender")
# [1] "cnt_gender" "cnt_gender"
推荐阅读
- java - 将日期转换为分钟的错误是什么?
- node.js - res.redirect 不是 promise 中的函数
- python - 当表单使用primefaces时,使用python,BeautifulSoup抓取表单
- rest - 证书发现服务
- matplotlib - 可以从 Python 以外的语言使用 MATPLOTLIB 吗?
- javascript - Zapier 上的 Javascript HTTP 获取请求
- c# - 如何使用 c# 在 pdfium 中添加自定义矩形绘图工具箱项?
- jquery - 如何通过单击项目名称打开链接?
- php - Woo Commerce 3.0 上的特色产品
- c++ - 输入无效时函数陷入无限循环