r - 如何重命名包含 "(N)"的列名?

标签 r stringr

我想从列名中删除“(N)”。

示例数据:

df <- tibble(
  name = c("A", "B", "C", "D"),
   `id (N)` = c(1, 2, 3, 4),
  `Number (N)` = c(3, 1, 2, 8)
)

我到目前为止,但不知道如何找出正则表达式的其余部分

df %>% 
  rename_with(stringr::str_replace, 
              pattern = "[//(],N//)]", replacement = "")

但是“数字(N)”中的 n 不见了。

    name    id N)   umber (N)
1   A   1   3
2   B   2   1
3   C   3   2
4   D   4   8

最佳答案

一行:rename_with(df, ~str_remove_all(., '\\(N\\)'))

仅限

dplyr:rename_with(df, ~sub('\\(N\\)', '', .))

我们可以使用 dplyr 包中的 rename_with 函数并应用一个函数(在这种情况下 str_remove 来自 stringr 包)。

然后使用\\转义(:

library(dplyr)
library(stringr)
df %>% 
  rename_with(~str_remove_all(., ' \\(N\\)'))
  name     id Number
  <chr> <dbl>  <dbl>
1 A         1      3
2 B         2      1
3 C         3      2
4 D         4      8

关于r - 如何重命名包含 "(N)"的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70584451/

相关文章:

r - 如何根据现有字典更改字符串?

r - 如何在字符串中找到相同的模式?

r - 是否有用于模糊字符串检测的 R 包(或现有函数)?

R 绘图渲染 SQL Server 2016 使用 sp_execute_external_script

r - 字符向量上的 "subscript out of bounds"

r - 将分区文件夹列转换为变量

r - 添加自定义垂直线joyplots ggridges

用 stringr 删除最后一个空格后的所有内容

r - str_replace 不会替换所有出现的内容,但是 gsub 会替换吗?

r - 关于权重向量的 R 中二次形式的最大化