我将从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()
命令中是否有参数?
答案 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