我有一个缺少许多值的数据集。一些缺失值是NA,一些缺失值是Null,而其他缺失值的长度却各不相同。我想利用fread中的R函数来读取所有这些缺少的值。

这是一个例子:

#Find fake data
iris <- data.table(iris)[1:5]

#Add missing values non-uniformly
iris[1,Species:='         ']
iris[2,Species:=' ']
iris[3,Species:='NULL']

#Write to csv and read back in using fread
write.csv(iris,file="iris.csv")
fread("iris.csv",na.strings=c("NULL"," "))

   V1 Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1:  1          5.1         3.5          1.4         0.2
2:  2          4.9         3.0          1.4         0.2        NA
3:  3          4.7         3.2          1.3         0.2        NA
4:  4          4.6         3.1          1.5         0.2    setosa
5:  5          5.0         3.6          1.4         0.2    setosa

从上面的示例中,我们看到我无法解释第一个缺少的值,因为有很多空格。有人知道一种解决方法吗?

最佳答案

非常感谢@eddi的精彩回答。

fread("sed 's/ *//g' iris.csv",na.strings=c("",NA,"NULL"))

关于r - 使用data.table的长度可变的fread用于空白缺失值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24191409/

10-12 23:26