colMeans在for循环R中失败

时间:2016-05-06 03:04:18

标签: r for-loop

我一直在努力从网上抓取数据并在R中操作它,但是当我开始包含可怕的for循环时,我遇到了一些麻烦。我正在处理一些任意的运动统计数据,我的想法是我可以计算每个球员各种统计数据的每场比赛平均值。

这些作品中的每一个都在循环之外工作,但在内部分开。理想情况下,我的代码将做三件事:

1)刮刮数据。我有一个球员名单和#34;姓名" (按行),以及第2列中每个玩家的唯一网址。该网站有一个名为" stats"在每个页面上,这是很好的。

library(XML)
statMean <- matrix(ncol = 8, nrow = 20)

for(h in 1:20){
   webname <- names[h,2]
   vurl    <- paste("http://www.pro-football-reference.com/players/", 
                    webname, "/gamelog/2015")
   tables  <- readHTMLTable(vurl)
   t1      <- tables$stats

2)选择我想要的列并将值转换为数值。

   temp     <- t1[, c(9,10,12,13,14,15,17)]
   temp     <- sapply(temp, function(x) as.numeric(as.character(x)))

3)计算每列的平均值,将唯一的玩家名称绑定到列均值,然后将该向量转换为完整的表格。

   statMean <- rbind(statMean, c(webname, colMeans(temp)))

当我在循环之外执行这些步骤时,似乎工作......当我运行循环时,我不可避免地得到:

colMeans(temp)中的错误:&#39; x&#39;必须是至少包含两个维度的数组

我已经在这个网站上查看了许多For Loop问题,我的代码看起来与它的起源有很大不同。不幸的是,每次尝试新的东西时,我都会得到上述错误的版本。

任何帮助都会很棒。感谢。

0 个答案:

没有答案