データ フレームの列の 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
か? これを毎月行う必要があります。