1

私はこれに取り組んでいますが、私の解決策にはあまり満足していません。大きなファイルではあまり効率的ではありません。

私は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万を超える数字が含まれていると、完了するのにかなりの時間がかかるため、私の解決策には満足していません...これに対するより良い解決策はありますか?

どうもありがとう!!!!

4

1 に答える 1