原创:hxj7
计算各列的NA数量
这个可以用apply或者sapply快速实现
> df <- data.frame(col1=c(1, NA, 2), col2=c(2, 3, NA), col3=c(NA, NA, 3))
> df
col1 col2 col3
1 1 2 NA
2 NA 3 NA
3 2 NA 3
> sapply(df, function(v) sum(is.na(v)))
col1 col2 col3
1 1 2
或者:
> apply(df, 2, function(v) sum(is.na(v)))
col1 col2 col3
1 1 2
关于apply的说明
apply对一行或者一列是按照向量来处理的
假设要对每一行求和
> df <- data.frame(a=c(1, 2), b=c(3, 4), d=c("5", "6"), stringsAsFactors=F)
> str(df)
'data.frame': 2 obs. of 3 variables:
$ a: num 1 2
$ b: num 3 4
$ d: chr "5" "6"
> apply(df, 1, function(v) sum(as.numeric(v)))
[1] 9 12
这