r-AWS.Alexa-数据帧错误(..,check.names=FALSE):参数表示不同的行数:1,0



我使用aws.alexa包提取84个不同网站的历史网络流量数据,这些数据存储在一个名为website.names的字符向量中。

我正在调用的函数traffic_history()将字符串作为其主要参数,并返回一个包含5列的数据帧。知道该函数一次只返回1个站点的信息,我尝试创建一个循环,提取每个站点的流量历史,并将其存储在名为traffic:的数据帧中

for (i in 1:length(website.names)) {
traffic[i] <- traffic_history(paste(website.names[i], sep=""))
}

无论我尝试什么,我都会不断得到错误:"data.frame中的错误(…,check.names=FALSE(:参数意味着不同的行数:1,0。"即使我将traffic定义为与我期望它返回的维度相同,情况也是如此:

traffic <- as.data.frame(matrix(0, ncol = 5, nrow = 84))

任何关于如何解决这个问题的想法都将不胜感激。

我没有测试traffic_history代码的帐户,但通常你不想附加到data.frame。我通常会创建一个data.frames(或data.tables!(列表,然后将该列表绑定在一起。

webnames <- c("amazon.com", "apple.com")
dflist <- lapply(webnames, data.frame)
data.table::rbindlist(dflist)
#        X..i..
# 1: amazon.com
# 2:  apple.com
## OR
do.call(rbind, dflist) ## slower, but native solution
#        X..i..
# 1: amazon.com
# 2:  apple.com 

如果使用for循环,可以将列表预分配为:

dflist <- vector(mode = "list", length = length(webnames))

已解决。这不是存储问题。当你进入一个软件包无法识别的网站时,它会抛出这个错误。理想情况下,它只会标记网站并返回404错误,但至少目前没有。

相关内容

  • 没有找到相关文章

最新更新