我使用谷歌趋势R软件包执行几个关键字查询,如下所示:
trends1 <- gtrends(keyword="compare", gprop=channel,geo="AU", time=time, category=249)
trends2 <- gtrends(keyword="switch", gprop=channel,geo="AU", time=time, category=249)
trends3 <- gtrends(keyword="change", gprop=channel,geo="AU", time=time, category=249)我只对一段时间后的结果感兴趣,所以我把它们挑出来:
time_trend1 <- trends1$interest_over_time
time_trend2 <- trends2$interest_over_time
time_trend3 <- trends3$interest_over_time但是我有其中的60条(还有更多的)。我想写一个重复循环(我想):
#select only interest over time
x <- 0
repeat {
time_trend(x+1) <- trends(x+1)$interest_over_time
if (x == 61){break}
}但是我得到了错误:趋势中的错误(x+ 1):找不到函数“趋势”
我遗漏了什么?
发布于 2020-04-21 03:14:18
您可以使用ls + mget在列表中获取数据,使用lapply对每个列表进行迭代,并获取每个列表的"interest_over_time"元素。
total_list <- lapply(mget(ls(pattern = 'trends\\d+')), `[[`, "interest_over_time")total_list会给出数据格式的列表。最好将数据保存在列表中,因为它更容易管理,并且不会使环境中的许多对象杂乱无章。但是,如果您想要分别为每个数据,我们可以使用list2env。
list2env(total_list, .GlobalEnv)要删除某些列,我们可以:
total_list <- lapply(mget(ls(pattern = 'trends\\d+')), function(x) {
data <- x$interest_over_time
data[setdiff(names(data), c("geo","category","time"))]
})https://stackoverflow.com/questions/61335264
复制相似问题