> a <- matrix(c(
+ 0, 0, 0, 0,
+ 1, 1, NA, NA,
+ 1, 1, 1, NA,
+ 1, 1, 1, 1),ncol=4, byrow=TRUE)
> a
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 1 1 NA NA
[3,] 1 1 1 NA
[4,] 1 1 1 1
No.11446 Re: NAの数の集計 【surg】 2009/12/07(Mon) 12:47
(2) sum(apply(a, 1, function(x) sum(is.na(x)) == 2))
(3) sum(apply(a, 1, function(x) sum(is.na(x)) == 1))
で如何?
No.11447 Re: NAの数の集計 【波音】 2009/12/07(Mon) 13:31
早速の回答ありがとうございます。
先にfunction(x) sum(is.na(x))という関数を用意しておいて,それをapply()を用いて行ごとに実行してあげればよかったのですね。
No.11448 Re: NAの数の集計 【surg】 2009/12/07(Mon) 14:19
ちょっと違います.
function(x) sum(is.na(x)) == n までが関数定義です.
No.11449 Re: NAの数の集計 【青木繁伸】 2009/12/07(Mon) 14:20
基本的には同じですが,table(rowSums(is.na(a)))
なお,負の値を取るデータがある場合には,(1) にtable(apply(a, 1, sum) == 0) は NG
No.11450 Re: NAの数の集計 【波音】 2009/12/07(Mon) 15:06
> function(x) sum(is.na(x)) == n までが関数定義です.
あっ,ほんとですね。カッコがどこまでかかっているのか見誤っていました(^_^;)
> 基本的には同じですが,table(rowSums(is.na(a)))
そういう(こんなにも簡単にできる)やり方があったのですね。私にはまだまだ発想のツボが足りないようです(汗^^;)
● 「統計学関連なんでもあり」の過去ログ--- 043 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る