我不确定我是否提供足够的信息,但如果不是,请告诉我。
我从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
命令。
答案 0 :(得分:1)
听起来你在该列的某个地方有一个非数字值。你可以用
找到它tb$d[is.null(as.numeric(as.character(tb$d))]
如果它与&#34; null&#34;类似,您可以使用na.strings
参数自动将这些值转换为R中的正确缺失值
read.csv(..., na.strings="null")
当您读入数据时。