私はこれに取り組んでいますが、私の解決策にはあまり満足していません。大きなファイルではあまり効率的ではありません。
私は2つの数字のリストを持っています:
a <- as.numeric(c("12345678","2235689","56980"))
b <- as.numeric(c("123","1234","223","2235689","111","222","555","888","12345","8989"))
bに任意の数字があるSTARTからの任意の数字かどうかを知る必要があります。
だから私は以下のように関数を書きました:
findpattern <- function(a,b){
a_s<-c()
b_s<-c()
for (a1 in a){
z<-sapply(b,function(x)(1 %in% (regexpr(x,a1))))
if (TRUE %in% unique(z)){
b1 <- b[z]
a_s<- c(a_s,a1)
b_s<- c(b_s,pplist(b1))
}
}
res <- data.frame(a_find=a_s,b_associate=b_s)
return (res)
}
結果は次のようになります。
> findpattern(a,b)
a_find b_associate
1 12345678 123,1234,12345
2 2235689 223,2235689
しかし、bファイルに1万を超える数字が含まれていると、完了するのにかなりの時間がかかるため、私の解決策には満足していません...これに対するより良い解決策はありますか?
どうもありがとう!!!!