忽略/删除read.csv中的NA值

时间:2013-04-04 10:12:03

标签: r na read.csv

我有一个如下所示的csv文件,我使用read.csv读入R,其中C列有12/30个空值。我想计算每列的最大值,但是当在C列上使用时,R函数“max”返回“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 个答案:

答案 0 :(得分:13)

    data<-na.omit(data)

然后

    max(data)

如果您不想更改数据框,那么

    max(na.omit(data))

答案 1 :(得分:9)

你有两个我能想到的选择

 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

答案 2 :(得分:1)

我建议在阅读之后删除NA,就像其他人建议的那样。但是,如果您坚持只读取非NA行,则可以使用bash工具linux删除它们并创建新文件:

grep -Ev file_with_NA.csv NA > file_without_NA.csv

如果你运行linux或mac,你已经有了这个工具。在Windows上,您必须安装MinGW或Cygwin来获取工具。

答案 3 :(得分:-1)

你应该可以使用

max(x,na.rm=TRUE)