gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:34:29 26 4
gpt4 key购买 nike

首先,我对 R 和一般编程都很陌生,所以如果这是一个愚蠢的问题,我深表歉意。

我有一个与此类似的字符向量:

> vec <- rep(c("XabcYdef", "XghiYjkl"), each = 3)
> vec
[1] "XabcYdef" "XabcYdef" "XabcYdef" "XghiYjkl" "XghiYjkl" "XghiYjkl"

使用 stringr 包,我想删除前导的“X”并将“Y”替换为“-”。

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

> str_replace(vec, c("X", "Y"), c("", "-"))
[1] "abcYdef" "Xabc-def" "abcYdef" "Xabc-def" "abcYdef" "Xabc-def"

调用该函数两次即可达到预期结果:

> 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"

有没有办法通过单个命令实现相同的效果?

最佳答案

str_replace_all 可以采用匹配向量来替换:

str_replace_all(vec, c("X" = "", "Y" = "-"))
[1] "abc-def" "abc-def" "abc-def" "ghi-jkl" "ghi-jkl" "ghi-jkl"

关于R、stringr - 使用单个命令替换向量所有元素中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48751528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com