gpt4 book ai didi

r - 在向量行中查找部分文本 +[r]

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

基本上,我希望编写一个函数,它将字符串向量和搜索词作为输入,并输出一个 bool 向量。在此之后,我还想获取一个字符串列表并通过相同的函数运行它以输出多个结果向量,每个字符串一个。

所以初始数据看起来像:

> searchVector <- cbind(c("aaa1","aaa2","","bbb1,aaa1,ccc1", "ddd1,ccc1,aaa1"))
> searchVector
[,1]
[1,] "aaa1"
[2,] "aaa2"
[3,] ""
[4,] "bbb1,aaa1,ccc1"
[5,] "ddd1,ccc1,aaa1"

这就是我们希望看到的:
>findTrigger(c("aaa","bbb"),searchVector)
[aaa] [bbb]
[1,] 1 0
[2,] 1 0
[3,] 0 0
[4,] 1 1
[5,] 1 0

我做了以下尝试:
searchfunction <- function (searchTerms, searchVector) {
output = matrix( nrow = length(searchVector),
ncol = length(searchTerms),
dimnames = searchTerms)

for (j in seq(1,length(searchTerms)))
{
for (i in seq(1,length(searchVector)))
{
output[i,j]=is.numeric(pmatch(searchTerms[j], searchVector[i]))
}
}
return(as.numeric(output))
}

但我只是得到一个全为 1 的矩阵。我对 R 相当陌生,我在网上环顾四周,但没有任何运气。任何帮助将不胜感激,谢谢!

最佳答案

mapplygrepgrepl (谢谢 joran)是你的 friend :

searchTerms <- c("aaa", "bbb")
searchVector <- cbind(c("aaa1","aaa2","","bbb1,aaa1,ccc1", "ddd1,ccc1,aaa1"))
M <- mapply(grepl, searchTerms, MoreArgs=list(x=searchVector))
M
aaa bbb
[1,] TRUE FALSE
[2,] TRUE FALSE
[3,] FALSE FALSE
[4,] TRUE TRUE
[5,] TRUE FALSE

如果你想要它为 1,0 : apply(M,2,as.numeric)

关于r - 在向量行中查找部分文本 +[r],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404330/

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