小编Tom*_*iti的帖子

R,stringr - 使用单个命令替换向量的所有元素中的多个字符

首先,我是R的新手和一般编程,所以如果这是一个愚蠢的问题,我道歉.

我有一个类似于这个的字符向量:

> vec <- rep(c("XabcYdef", "XghiYjkl"), each = 3)
> vec
[1] "XabcYdef" "XabcYdef" "XabcYdef" "XghiYjkl" "XghiYjkl" "XghiYjkl"
Run Code Online (Sandbox Code Playgroud)

使用stringr包,我想删除前导"X"并用" - "替换"Y".

我尝试了以下代码,但结果并不是我所希望的.看起来这些patternreplacement参数在输入向量上被回收:

> str_replace(vec, c("X", "Y"), c("", "-"))
[1] "abcYdef"  "Xabc-def" "abcYdef"  "Xabc-def" "abcYdef"  "Xabc-def"
Run Code Online (Sandbox Code Playgroud)

我可以实现2次调用函数的预期结果:

> vec <- rep(c("XabcYdef", "XghiYjkl"), each = 3)
> vec <- str_replace(vec, "X", "")
> vec <- str_replace(vec, "Y", "-")
> vec
[1] "abc-def" "abc-def" "abc-def" "ghi-jkl" "ghi-jkl" "ghi-jkl"
Run Code Online (Sandbox Code Playgroud)

有没有办法通过一个命令实现相同的目标?

r stringr

3
推荐指数
1
解决办法
1784
查看次数

标签 统计

r ×1

stringr ×1