我试图从埃博拉疫情列表中获得埃博拉的总死亡人数,但似乎无法找到我的错误。会感激一些帮助。网站链接为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
有人可以帮我解决这个问题吗?
答案 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