将字符转换为数字时,所有值都转换为NA

时间:2016-04-16 08:01:08

标签: r

当我将数据框列转换为数字时,所有值都变为NA

offense[,2:13] <- apply(offense[,2:13],2,as.numeric)

The converted data frame.

Dataframe before conversion.

他们都是数字没有逗号,我甚至试图删除空格如果有任何偶然的使用

as.data.frame(apply(offense,2,function(x)gsub('\\s+','',x)))

但仍然会在类型转换时将值转换为NA并显示警告消息。

我从URL获取数据(数据科学手册第3章)

offense <- readHTMLTable(url, encoding = "UTF-8", colClasses="character")[[7]]

1 个答案:

答案 0 :(得分:0)

导入的变量是因子,因此您必须使用,例如

as.numeric(as.character(offense$`Pts/G`))

apply(offense[, 2:13], 2, function(x) as.numeric(as.character(x)))

请参阅?factor

  

要将因子f转换为大约其原始数值,   建议使用as.numeric(levels(f))[f],效率稍高   比as.numeric(as.character(f))。

(但是,第一种方式对我不起作用,也许我犯了一个错误,但as.numeric(as.character())的第二种方式有效)