web-dev-qa-db-ja.com

read.csvのNA値を無視/削除

以下に示すcsvファイルがあり、read.csvを使用してRに読み取りました。ここで、列Cには12/30の空の値があります。各列の最大値を計算したいのですが、R関数「max」が列Cで使用されると「NA」を返します。Rに空/ NA値を無視させるには、「rm.na」を表示できません。 read.csvで?

data<-data.frame(read.csv("test.csv"))

data

A   B   C   
1   5   6
15  2   3
8   3   3
7   5   4
5   3   8
4   1   4
5   3   4
2   2   10
4   3   8
6   5   2
1   4   4
10  8   4
0   6   0
7   3   8
5   3   3
13  12  13
6   0   0
0   0   2
5   2   NA
7   3   NA
1   8   NA
11  1   NA
1   4   NA
0   7   NA
4   5   NA
3   10  NA
2   0   NA
6   4   NA
0   19  NA
1   5   NA

> max(C)
[1] NA
9
moadeep

あなたは私が考えることができる2つのオプションがあります

 apply(data,2,max,na.rm=TRUE); # this will remove the NA's from columns that contain them

OR

apply(na.omit(data),2,max); ## this will remove the NA rows from the data frame and then calculate the max values
9
Aditya Sihag
    data<-na.omit(data)

その後

    max(data)

データフレームを変更したくない場合は、

    max(na.omit(data))
13

他の人が示唆したように読んだ後、NAを削除することをお勧めします。ただし、NA以外の行のみの読み取りを要求する場合は、bashツールlinuxを使用してそれらを削除し、新しいファイルを作成できます。

grep -Ev file_with_NA.csv NA > file_without_NA.csv

LinuxまたはMacを実行している場合は、すでにこのツールを使用しています。 Windowsでは、ツールを入手するためにMinGWまたはCygwinをインストールする必要があります。

1
Paul Hiemstra

使えるはず

max(x,na.rm=TRUE)
1
Jess2332