gpt4 book ai didi

r - 查找字符在字符串中的位置

转载 作者:行者123 更新时间:2023-12-04 08:38:00 24 4
gpt4 key购买 nike

我试图在 R 中找到与 ANYALPHA SAS 函数等效的函数。此函数在字符串中搜索字母字符,并返回找到该字符的第一个位置。

示例:查看以下字符串“123456789A”,ANYALPHA 函数将返回 10,因为第一个字母字符位于字符串中的位置 10。我想在 R 中复制这个函数,但一直没弄明白。我需要搜索任何字母字符而不考虑大小写(即 [:alpha:])

感谢您提供的任何帮助!

最佳答案

这是一个anyalpha 函数。我添加了一些额外的功能。您可以在 n 参数中指定所需的最大匹配数,它默认为 1。您还可以使用 value=TRUE 指定是想要位置还是值本身:

anyalpha <- function(txt, n=1, value=FALSE) {
txt <- as.character(txt)
indx <- gregexpr("[[:alpha:]]", txt)[[1]]
ret <- indx[1:(min(n, length(indx)))]

if(value) {
mapply(function(x,y) substr(txt, x, y), ret, ret)
} else {ret}
}

#test
x <- '123A56789BC'
anyalpha(x)
#[1] 4
anyalpha(x, 2)
#[1] 4 10
anyalpha(x, 2, value=TRUE)
#[1] "C" "A"

关于r - 查找字符在字符串中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134778/

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