2012-12-11 9 views
12

多くの欠損値を持つ.csvデータセットがあり、テーブルを読み込んだときにRがすべて同じ方法(「正しい」方法)で認識されるようにします。.csvで読むときに欠損値をNAに置き換える最善の方法は何ですか?

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

このスクリプトは、すべての空のセルに何かを塗りつぶしますが、一貫していません。 head(import)のデータを見ると、欠けているセルは<NA>で埋められ、欠落しているセルはNAで埋められます。私は、Rがデータセットの分析を開始するときに欠損値を識別するこれらの2つの方法を別々に扱うことを恐れているので、その欠損値でインポートを一様に読み取らせたいと思います。

最後に、csvファイルの欠損値の一部は、ピリオドでのみ表示されます。

+6

」と「NA」は、列の一部が文字であり、一部が数値であることを意味します。絶対に何も間違っていません。あなたのcsv(またはその代表的な部分)にアクセスすることなく、他の問題を診断するのは難しいでしょう。 – joran

+6

あなたは 'na.strings = c(" "、"。 "、" NA ")'なんかを使うことができると思いますが(私は@Joranには小さな再現可能な例[http://tinyurl.com/reproducible-000]は素敵でしょう。 –

答えて

15

<NA>NAは、一部の列が文字であり、一部が数値であることを意味しています。絶対に何も間違っていません。

na.strings=c("",".","NA") 
:CSVでの欠損値のいくつかは、単一の期間、 .で表現されている場合は、ベンは前述したように

、あなたは経由NA秒として扱われるべき値のベクトルを指定することができます

を引数としてread.csvに転送します。

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列に組み合わせる方法はわかりますが、

ありがとうございました!

+0

JosephA、答えの最後に「追加」ではなく質問として投稿された場​​合、あなたの質問は回答を受け取ることがあります – HelloWorld

関連する問題