将readHTMLTable转换为数字

时间:2014-04-22 17:54:21

标签: r

我正在使用readHTMLTable并且在列上执行计算时遇到困难,因为当我使用as.numeric转换为numeric时,列中的值会从值更改为rank。 任何人都可以帮忙

a=readHTMLTable("http://www.nhl.com/ice/standings.htm?season=20132014&type=LEA",which=3,trim=F)
> a[,5]
 [1] 54 54 52 52 51 51 46 46 46 46 43 45 42 43 39 40 38 37 38 35 37 37 38 36 36 34 35 29 29 21
Levels: 21 29 34 35 36 37 38 39 40 42 43 45 46 51 52 54
> a[,5]=as.numeric(a[,5])
> a[,5]
 [1] 16 16 15 15 14 14 13 13 13 13 11 12 10 11  8  9  7  6  7  4  6  6  7  5  5  3  4  2  2  1

我希望能够对[,5]的值执行函数,而不是对等级执行。例如mean(a [,5])=(54 + 54 + 52 ... + 21)/ 30,而不是

  

平均值(A [5])
      [1] 8.933333

1 个答案:

答案 0 :(得分:0)

问题是尝试将因子变量转换为数字。请参阅this post

处理问题的规范方法是as.numeric(levels(a[,5]))[a[,5]]

但是,我经常使用的方法是as.numeric(as.character(a[,5])),因为它更容易记住。