不包括NA的柱长度,单位为r

  • 本文关键字:单位 NA 不包括 r
  • 更新时间 :
  • 英文 :


假设我有一个data.frame,如下所示:

   a  b c
1  5 NA 6
2 NA NA 7
3  6  5 8

我想找出每一列的长度,不包括NA。答案应该看起来像

a b c 
2 1 3 

到目前为止,我已经尝试过:

 !is.na()                  # Gives TRUE/FALSE
 length(!is.na())          # 9 -> Length of the whole matrix
 dim(!is.na())             # 3 x 3 -> dimension of a matrix
 na.omit()                 # removes rows with any NA in it.

请告诉我怎样才能得到要求的答案。

或更快:

colSums(!is.na(dat))
a b c 
2 1 3 

虽然求和可能是一个更快的解决方案,但我认为length(x[!is.na(x)])更可读。

> apply(dat, 2, function(x){sum(!is.na(x))})
a b c 
2 1 3 

我尝试了NCOL而不是NCOL,它成功了。

> nrow(tsa$Region)
NULL
> NROW(tsa$Region)
[1] 27457

> ncol(tsa$Region)
NULL
> NCOL(tsa$Region)
[1] 1

如果您想在整个数据帧中计数非NA值,以下内容将有所帮助。

 sum(!is.na(df))
[1] 3

然后对每列中的非NA值进行计数,如下

colSums(!is.na(df))
a b c 
2 1 3

最新更新