8

データ フレームの列で欠落していないケースをカウントする簡単な方法を見つけようとしています。私は機能を使用しました:

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

次に、sapply() を介してデータ フレームに適用します。

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

これは正常に機能していますが、関数の基本セットにあるものなど、より簡単なカウント方法がないことを信じていません。

何か案は?

4

3 に答える 3

15

a の場合は、 anddata.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 
于 2013-03-29T15:15:27.330 に答える
7

na.omit を使用できます

length(na.omit(x));

caelorusによる投稿が示すように、適用とともに

于 2013-03-29T14:12:07.660 に答える
0

あなたは使用することができwhichますlength

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

which一致する要素 (この場合は非NAs)のインデックスを返し、lengthそれらのインデックスがいくつあるかを示します。

一度にすべての列に対して:

apply(OldExaminee, 2, function(x){ length(which(!is.na(x))) })
于 2013-03-29T13:55:51.797 に答える