簡體   English   中英

在數據字符串列中計算非NA的簡單方法

[英]Simple method of counting non-NAs in column of data String

我試圖找到一種簡單的方法來計算數據框列中的非缺失案例。 我用過這個功能:

foo<- function(x) { sum(!is.na(x)) }

然后通過sapply()將其應用於數據框

stats$count <- sapply(OldExaminee, foo2, simplify=T)

雖然這很好用,但我只是不相信沒有更簡單的計數方法,即基本功能集中的某些東西。

有任何想法嗎?

對於data.frame您可以使用colSumsis.na獲取它:

set.seed(45)
df <- data.frame(matrix(sample(c(NA,1:5), 50, replace=TRUE), ncol=5))
#    X1 X2 X3 X4 X5
# 1   3  2 NA  2 NA
# 2   1  5  1  1  4
# 3   1  1  3  2  3
# 4   2  2  3  5  3
# 5   2  2  5  2  2
# 6   1  2 NA  3  3
# 7   1  5  5  5  2
# 8   3 NA  4  1  5
# 9   1  2  3 NA  1
# 10 NA  1  1  2  2

colSums(!is.na(df))
# X1 X2 X3 X4 X5 
#  9  9  8  9  9 

你可以使用na.omit

length(na.omit(x));

隨着caelorus指示申請

你可以使用whichlength

length(which(!is.na(x$col)))

which返回匹配元素的索引(在本例中為非NA s), length有多少索引。

對於所有列:

apply(OldExaminee, 2, function(x){ length(which(!is.na(x))) })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM