GTrendsR パッケージで、StackOverflow の他の例では対処できないエラーが発生しました。これは、for または lapply 機能を使用して複数の検索をループする方法です。
gtrends(ch, query = "Harvard University" , geo = "US") のように簡単に実行すると
1 つのキーワードで単純な検索を行うと発生しないエラーが発生しました。
charToDate(x) のエラー: 文字列が標準の明確な形式ではありません
from lapply(queries, function(x) gtrends(ch, query = x , geo = "US"))
と
for (i in seq_along(queries)) {
x <- queries[i]
dta[i,] <- gtrends(ch, query = x , geo = "US")$trend # trend data.frame returned from gtrends()
}
背景とコードが必要な場合: IPEDS にリストされている米国の大学名の Google トレンドの検索履歴を取得しようとしています (このUS DofEd API リンクで)
私はGTrendRパッケージを使用しています
devtools::install_bitbucket(repo = "gtrendsr", username="persican")
単一の検索用語を実行しても問題ありません。しかし、自動化しようとするとすぐに GTrendsR エラーが発生します。
library("GTrendsR", lib.loc="~/Library/R/3.1/library")
download.file("https://inventory.data.gov/dataset/032e19b4-5a90-41dc-83ff-6e4cd234f565/resource/38625c3d-5388-4c16-a30f-d105432553a4/download/postscndryunivsrvy2013dirinfo.csv" , destfile="ipeds.csv", method="curl")
colleges <- read.csv("./ipeds.csv", header=T, stringsAsFactors=F)
queries <- colleges$INSTNM # Institution Names
prepopulating dataframe with 3 columns from gtrends function
dta <-data.frame(matrix(NA, length(queries),3))
資格情報の設定
usr <- "your@gmail.com"
psw <- "yourpassword"
ch <- gconnect(usr, psw)
自動化する for ループ:
for (i in seq_along(queries)) {
x <- queries[i]
dta[i,] <- gtrends(ch, query = x , geo = "US")$trend # trend data.frame returned from gtrends()
}
lapply も機能しません:
lapply(queries, function(x) gtrends(ch, query = x , geo = "US")$trend)
次のエラーが表示されます。
charToDate(x) のエラー: 文字列が標準の明確な形式ではありません
エラーは、 charToDate() への依存が原因のようです。どうすればよいのかわかりません。
ただし、3 つの検索のみを使用すると機能します。
three <- list("Harvard University", "Boston College", "Bard College")
out <- sapply(three, function(x) cbind.data.frame(gtrends(ch, query = x , geo = "US")$trend[3])[])