2017-02-02 5 views
0

次のことを行っているRの関数が必要です。 は、私はいくつかのデータを持つ行列を持つRすべての列をNAで取得

mydata <- data.frame (matrix(c(1,2,3,NA,2,3,NA,NA,2), 3,3)) 

mydata 
    X1 X2 X3 
1 1 NA NA 
2 2 2 NA 
3 3 3 2 

私は列または1でNAがある場合は、列のいずれかのNAがあれば、この行列のすべての列をチェックし、0を格納するベクトルを作成したいん列にNAがない場合。

したがって、列X1を確認します。NAがこの列にある場合は、ベクトルに0を書き込んでください。書き込まない場合は、ベクトルに1を書き込んでください。次に、次の列を確認してください。ベクトルMYDATA確認後

は、私はNAを持っているカラム名を取得

colnames(mydata)[colSums(is.na(mydata)) > 0] 

この

(1 0 0) 

のようになります。しかし、この関数を使ってベクトルを作成するにはどうすればよいですか?

+1

'sapply(mydataに、関数(x)が!どんな(is.na(X)))' ' – jogo

+0

ifelseでバイナリに論理matrixcolSumsから論理ベクトルを強制することができます(colSums(is.na(mydata))== 0,1,0) ' – Sotos

+0

すごい!!これは私が必要とするものを正確に実行しています – user2348157

答えて

0

我々はas.integer

as.integer(!colSums(is.na(mydata))) 
#[1] 1 0 0 
関連する問題