0

データ フレームの列の 1 つで文字列操作を実行しようとしていますTest_df。このデータフレームには、5mil 近くのレコードがあります。目的は、(ヌルを置き換えた後) 文字列内の文字の出現回数をカウントすることであり、カウントするために を使用しstr_locateています。

これは行単位の突然変異であるため、 でrowwise()関数を使用してみましたdplyr

Test_df <- Test_df%>%
        rowwise() %>%
          mutate(col1 = replace_na(str_locate(as.character(my_string),"2")[1],999))

この行の実行には 5 時間以上かかり、非常に最適ではありませんでした。

次に、関数を使用してこのStack Overflow Threadpurrr:pmapに従ってプロセスを少し高速化しようとしましたが、これはプロセスの高速化には役立ちませんでした。

Test_DF <- Test_DF%>%mutate(col1 = purrr::pmap_dbl(list(Test_DF$my_string), function(a) replace_na(str_locate(a,"2")[1],999)))

実行を高速化する方法はありreplace_naますstr_locateか? これを毎月行う必要があります。

4

0 に答える 0