使用data.table';s fread具有不同长度的空白缺失值
我有一个缺少很多值的数据集。缺少的值中有一些是NAs,一些是NULL,还有一些具有不同长度的空格。我想利用使用data.table';s fread具有不同长度的空白缺失值,r,data.table,R,Data.table,我有一个缺少很多值的数据集。缺少的值中有一些是NAs,一些是NULL,还有一些具有不同长度的空格。我想利用R中的fread功能来读取缺失的所有这些值 以下是一个例子: #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
R
中的fread
功能来读取缺失的所有这些值
以下是一个例子:
#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
#查找假数据
iris非常感谢@eddi的精彩回答
fread("sed 's/ *//g' iris.csv",na.strings=c("",NA,"NULL"))
要么添加所有可能的空格长度,要么在读入后将其设置为NA
?我目前正在使用mclappy(数据,函数(x)ifelse(str_trim(x)='',NA,toupper(str_trim(x)),mc.cores=10)
来转换所有内容,但速度不是很快。我想我可以用paste
和rep
来考虑所有可能的空格,这是Linux(Ubuntu)上的fread(“sed's/*//g'yourfile”)
或一些正则表达式的变体,根据您的数据的具体外观可能是1.8.11-请升级到至少1.9.2并重试