gpt4 book ai didi

根据条件替换 R 中字符串的第一个元素

转载 作者:行者123 更新时间:2023-12-04 12:17:36 27 4
gpt4 key购买 nike

如果满足条件,我想将 x 中字符串的第一个元素替换为空白:如果 x 中“101”的第一个元素与 y 中的第一个字符串匹配,则将“101”的第一个元素替换为空白。

x = c("101", "201", "301")
y = c("1", "7", "3")

想:
> x
[1] "01" "201" "01"

我在尝试:
> ifelse(substr(x, 1, 1) == y, sub(substr(x, 1, 1), ""), x)

我知道这是错误的,但不是凭直觉- sub需要一个模式作为第一个参数并且不会接受 substr .

也试过:
> ifelse(substr(x, 1, 1) == y, substr(x, 1, 1) <- "", x)
[1] "" "201" ""

我提到了这个 R: How can I replace let's say the 5th element within a string?并使用以下方法解决它:
ifelse(substr(x, 1, 1) == y, paste(substr(x, 2, nchar(x))), x)

想知道是否有更好的方法来做到这一点?

最佳答案

匹配第一个字符的正则表达式是 "^." ( ^ 是字符串的开头,. 是任何单个字符),所以使用 sub就像你建议的那样:

ifelse(substr(x, 1, 1) == y, sub("^.", "", x), x)
# [1] "01" "201" "01"

关于根据条件替换 R 中字符串的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28866317/

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