首先,我是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".
我尝试了以下代码,但结果并不是我所希望的.看起来这些pattern和replacement参数在输入向量上被回收:
> 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)
有没有办法通过一个命令实现相同的目标?