如何在从网站上抓取表格后为列添加值

时间:2014-11-10 08:57:34

标签: r web-scraping

我试图从埃博拉疫情列表中获得埃博拉的总死亡人数,但似乎无法找到我的错误。会感激一些帮助。网站链接为http://en.wikipedia.org/wiki/List_of_Ebola_outbreaks

我使用了以下代码:

url1 <-'http://en.wikipedia.org/wiki/List_of_Ebola_outbreaks'
df1<- readHTMLTable(url1)[[2]]
df1$"Human death"

但是当我尝试使用sum函数添加此值时。它出现以下错误

Error in Summary.factor(c(5L, 12L, 1L, 2L, 9L, 1L, 1L, 1L, 1L, 14L, 1L,  : 
  sum not meaningful for factors

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您正在使用R default读取表格,该默认值将字符转换为因子。您可以在stringsAsFactors = FALSE中使用readHTMLTable,这将传递给data.frame。此表还使用逗号分隔千位分隔符,您需要删除它们:

library(XML)
url1 <-'http://en.wikipedia.org/wiki/List_of_Ebola_outbreaks'
df1<- readHTMLTable(url1, which = 2, stringsAsFactors = FALSE)
df1$"Human death"
sum(as.integer(gsub(",", "", df1$"Human death")))

> mySum
[1] 6910