防止在导入.csv文件时添加NAs - R.

时间:2015-01-19 17:16:54

标签: r excel csv

我将从excel中获取大量.csv个文件。有时我使用

导入数据
data=read.csv("data.csv", header=T)

随机添加NAL列或行。如果有人在数据输入到R。

期间使用了其他列,则似乎会发生这种情况

看起来像这样

> df
   v1 v2  X X.1
1   a  1 NA  NA
2   a  1 NA  NA
3   a  1 NA  NA
4   a  0 NA  NA
5   a  0 NA  NA
6   a  0 NA  NA
7   a  1 NA  NA
8   a  1 NA  NA
9   a  0 NA  NA
10  a  0 NA  NA
11  a  1 NA  NA
12  a  0 NA  NA
13  a  1 NA  NA
14  a  1 NA  NA
15  b  1 NA  NA
16  b  1 NA  NA
17  b  0 NA  NA
18  b  0 NA  NA
19  b  0 NA  NA
20  b  0 NA  NA
21  b  0 NA  NA
22  b  0 NA  NA
23  b  0 NA  NA
24  b  1 NA  NA
25  b  1 NA  NA
26  b  1 NA  NA
27  b  1 NA  NA
28  b  1 NA  NA

无论如何都要防止这些被添加? read.csv()命令中是否有参数?

1 个答案:

答案 0 :(得分:1)

如果要剥离具有所有NA值的列:

deNA <- function(df){
    df[,!sapply(df, function(col){all(is.na(col))}, simplify=TRUE),drop=FALSE]
}

然后:

foo = deNA(read.csv("data.csv",header=TRUE))

应该做的诀窍:

foo.csv:

1,2,3,4,,,
2,3,4,5,,6,
5,4,3,2,,,
1,2,3,4,,,

然后

> read.csv("foo.csv")
  X1 X2 X3 X4  X X.1 X.2
1  2  3  4  5 NA   6  NA
2  5  4  3  2 NA  NA  NA
3  1  2  3  4 NA  NA  NA

> deNA(read.csv("foo.csv"))
  X1 X2 X3 X4 X.1
1  2  3  4  5   6
2  5  4  3  2  NA
3  1  2  3  4  NA