R将导入的Excel数字从R因子转换回数字

时间:2013-06-08 15:33:46

标签: r excel import statistics

我正在尝试将一个Excel创建的.csv文件读入R.我已经尝试了很多建议,但没有一个已经完全淘汰了。

以下是数据在.csv文件中的显示方式,第一行是标题:

recipe_type,State,Successes,Attempts
paper,alabama ,586,3379

以下是导入.csv文件的R命令:

options( StringsAsFactors=F )
results<-read.csv("recipe results.csv", header=TRUE, as.is=T)
results$Successes
[1] "586" 

成功被视为角色数据。

我也试过这种方法: 结果[,3]&lt; - as.numeric(levels(结果$ Successes))但获得此列中每个值的排名而不是实际值,而另一个帖子表示会发生。

有关如何将此数据视为数字的任何想法,以便我可以获得适当的stat.desc统计数据吗?

由于

3 个答案:

答案 0 :(得分:3)

将因子直接转换为数字会产生因子级别,而与值本身无关。您需要先转换为角色:

results[,3] <- as.numeric(as.character(results$Successes))

等效地(参见?factor),您可以将等级转换为数字,并通过因子的(隐式)数字转换进行索引。

as.numeric(levels(results$Successes))[results$Successes]

答案 1 :(得分:1)

意识到这是一个古老的问题,但是今天在遇到类似问题时遇到了这个问题。 最终,我发现问题是由于Excel的“数字”格式在其值中包含一个逗号(,):1,000而不是1000。一旦删除了逗号,我便可以从没有NA值的因子中进行转换。

df$col1 <-as.numeric(gsub(",","",df$col1))

以防万一有人碰到类似的东西。

答案 2 :(得分:0)

我发现这个软件包最有帮助,除了警告之外没有任何问题:gdata。

此网址包含有关套餐的信息:http://www.r-tutor.com/r-introduction/data-frame/data-import

我确实将我的电子表格从.xlsx转换为.xls,这似乎是预期的。我没有测试.xlsx是否会起作用。