从数据表读取得到的因素不是双倍

时间:2014-05-06 17:50:21

标签: r

我不确定我是否提供足够的信息,但如果不是,请告诉我。

我从CSV文件加载了一个数据框,其中包含整数列和一列c,带有双精度数。我们称之为数据框tb

现在我想从数据表tb中提取特定的double。但是,当我输入类似

的东西时
print(tb[4,][['c']]);

它给了我一个像

这样的回复
[1] 790.000000000001
92 Levels: -730.33000000000001 -290.0 -912.47 -37.8000000000000089 -291.780000000000002     
... null

我尝试了一些不同的方法,例如只获取行并打印它。没有问题。但是,在环境中,它会使用Factor w/ 92 levels ...

之类的内容进行记录

我一直在网上查询资源但无济于事。不确定这是否是我自己机器上的异常行为。

更新

我使用read.csv如下:

tb <- read.csv(file="test_3.csv", head=TRUE, sep=",");

当然,csv文件的一些行如下:

a,b,c,d
1,170,771.8,1170.0
1,1,1.87,76.0
1,76,345.04,0.0
1,102,463.08,566.0
4,188,1530.3200000000002,3548.0000000000005

后记

我的csv文件有这样的行     4188,NULL,3548.0000000000005

因此阅读文件会产生问题。在na.strings=("null")工作奇迹中使用read.csv命令。

1 个答案:

答案 0 :(得分:1)

听起来你在该列的某个地方有一个非数字值。你可以用

找到它
tb$d[is.null(as.numeric(as.character(tb$d))]

如果它与&#34; null&#34;类似,您可以使用na.strings参数自动将这些值转换为R中的正确缺失值

read.csv(..., na.strings="null")

当您读入数据时。