我想从列名中删除“(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/