我在 GTrendsR 包上遇到了一个错误,StackOverflow 上的其他示例没有处理,这就是如何使用 for 或 lapply 功能循环多个搜索。
当我做某事像 gtrends(ch, query = "Harvard University" , geo = "US")
我遇到了一个错误,对一个关键字进行简单搜索不会发生这种错误。
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])[])