11

以下に示すように、read.csv を使用して R に読み込む csv ファイルがあり、列 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
4

4 に答える 4

15
    data<-na.omit(data)

それから

    max(data)

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

    max(na.omit(data))
于 2013-11-12T09:06:01.240 に答える
9

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

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

また

apply(na.omit(data),2,max); ## this will remove the NA rows from the data frame and then calculate the max values
于 2013-04-04T10:48:08.930 に答える
1

あなたは使用できるはずです

max(x,na.rm=TRUE)
于 2015-12-21T14:23:41.677 に答える
1

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

grep -Ev file_with_NA.csv NA > file_without_NA.csv

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

于 2013-04-04T10:50:48.203 に答える