我有一个包含字母数字字符串的数据集。我试图用“nnnn”替换字符串的数字部分,用“aaaa”替换字母部分。字母和数字部分的长度无关紧要。
例子: | 我期待的 |
---|---|
#100001032218888示例1 | #nnnnaaaannn |
#1-示例-2 | #nnnn-aaaa-nnnn |
我试过这个:
mutate(str_alpha = str_replace_all(col_name, "\\w+", "aaaa"),
str_num_alpha = str_replace_all(str_alpha, "\\d+", "nnnn"))
我想我得到的“\w+”不正确,因为它也替换了字符串的数字部分。
有人可以帮忙吗?谢谢。
相反,即先替换字母,然后替换数字
library(stringr)
str_replace_all(str_replace_all(str1, "[[:alpha:]]+", "aaaa"), "\\d+", "nnnn")
-输出
[1] "#nnnnaaaannnn" "#nnnn-aaaa-nnnn"
或者在单个
str_replace_all
中使用命名向量
str_replace_all(str1, setNames(c("aaaa", "nnnn"), c("[[:alpha:]]+", "\\d+")))
[1] "#nnnnaaaannnn" "#nnnn-aaaa-nnnn"
str1 <- c("#100001032218888example1", "#1-example-2")