最近、API呼び出しで検索ボリュームを探すためのスクリプトを作成しました。
これが私が使用したスクリプトです:
install.packages("SEMrushR")
library(SEMrushR)
#Data frame to append data
final_result_useo_rumbo <- data.frame()
mes_keywords_to_check <- readLines("useo_rumbo_es.txt")
mes_keywords_to_check <- as.character(mes_keywords_to_check)
#Loop in order to look for each keyword that is in my list, then return Search volume thanks to the API call and finally store it in a new database.
for (i in 1:length(mes_keywords_to_check)) {
test_keyword <- as.character(mes_keywords_to_check[i])
df_test_2 <- keyword_overview_all(test_keyword, "es","API KEY")
final_result_useo_rumbo <- rbind(final_result_useo_rumbo,df_test_2)
}
スクリプトは問題なく機能していますが、問題は、チェックするキーワードがたくさんあることです(800 000)。60 000のキーワードでそれを行ったとき、続行するのにほぼ4時間かかりました...
プロセスをスピードアップする方法を知っていますか?スクリプトを書くためのより良い方法はありますか?
for
ループをapply
関数に置き換えてみることができます。
result <- sapply(mes_keywords_to_check, function(x) {
keyword_overview_all(x, "es", "API KEY")
})
次に、data.frame
マトリックスではなくデータフレームが必要な場合は、上記のようにすることができます。
result <- data.frame(result)
または多分転置を取る:
result <- data.frame(t(result))
ループの前にそのベクトル全体を文字に変換済みであるため、のas.character
各エントリを呼び出す必要はありませんmes_keywords_to_check
(またはapply
上記の場合は呼び出します)。また、rbind
ループの各反復で呼び出す必要はおそらくありません。むしろ、Rにデータをロールアップさせ、ループ/適用が完了した後にどうするかを心配します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加