【问题标题】:R rename multiple columns based on partial string match - pipeR根据部分字符串匹配重命名多个列 - 管道
【发布时间】:2020-09-02 15:06:53
【问题描述】:

我有一个数据集,其中列名是调查问题并且内容广泛,有时包含不同的标点符号。因此,我想将所有与部分字符串匹配的列标题重命名为更合理的 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)"

我正在寻找的是根据部分字符串匹配完全重命名列。

【问题讨论】:

    标签: r tidyverse


    【解决方案1】:

    您可以在要替换的字符串之后使用.* 来捕获其他可能潜伏的内容(包括任何内容)。

    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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-02
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多