我正在尝试将一个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统计数据吗?
由于
答案 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是否会起作用。