在.csv中读取时用NA替换缺失值的最佳方法是什么?

时间:2012-12-11 15:17:58

标签: r csv na

我有一个带有许多缺失值的.csv数据集,我希望当我读取表时,R以同样的方式识别它们(“正确”方式)。我一直在使用:

import = read.csv("/Users/dataset.csv", 
                  header =T, na.strings=c(""))

这个脚本用一些东西填充所有空单元格,但它不一致。当我使用head(import)查看数据时,一些丢失的单元格会被<NA>填充,而一些丢失的单元格会被NA填充。我担心R在开始分析数据集时会采用不同的方式来识别缺失值,因此我希望将导入统一读入缺失值。

最后,我的csv文件中的一些缺失值仅用句点表示。我还希望在导入到R时使用正确的缺失值表示法表示这些句点。

3 个答案:

答案 0 :(得分:16)

<NA> vs NA只是意味着您的某些列是字符,有些是数字,这就是全部。绝对没有错。

如上所述,如果csv中的某些缺失值由单个句点.表示,那么您可以指定一个值的向量,该值应该被视为NA s :

na.strings=c("",".","NA")

作为read.csv的参数。

答案 1 :(得分:0)

是的,我遇到了同样的问题。当我执行时:

rm(list=ls())
getwd()
setwd("C:/Users/JOSEP/Documents/UNI/Estadística Nitrats/Estadistica/Nitrats")
Nitrats_bo<- read.csv2("C:/Users/JOSEP/Documents/UNI/Estadística Nitrats/Dades/Nitrats Osona. Mireia.ActualitzatMunicipis_2016.csv", header=T)
head(Nitrats_bo)

使得:

 X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014 X2015 X2016
1   0.4   0.2   0,6   0,7         0,6   0,9     1   0.7   1.3   0.9     1
2   0.4   0.8    NR    NR         0,7   0,8   0,9   1.1   1.1   0.9    NA
3    NA    NA                                        NA    NA    NA    NA
4    NA    NA                                        NA    NA    NA    NA
5    NA    NA                                        NA    NA    NA    NA
6    NA    NA                                        NA    NA    NA    NA

因为存在“NR”因素。

所以,我抛出这个“NR”因素,当我执行......

X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014 X2015 X2016
1   0.4   0.2   0.6   0.7    NA   0.6   0.9   1.0   0.7   1.3   0.9     1
2   0.4   0.8    NA    NA    NA   0.7   0.8   0.9   1.1   1.1   0.9    NA
3    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
4    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
5    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
6    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA

没关系!

我问但是如何在同一个df列中组合数字和因子。

三江源!

答案 2 :(得分:0)

您还可以使用更灵活的readr软件包,其等效函数和参数为read_csv()na

library(readr)
read_csv("file.csv", na = c(".", ".."))