2016-11-18 19 views
1

大規模なデータフレームは?_?寸法は501行と42844列で​​す。 Rを使用して、私はすでに以下のコードを使用することにより、NAでそれらを置き換えていますデータフレームからNA値を削除するR

data[data == "?_?"] <- NA 

をだから私は今、NA値があると私はData.frame何か悪い起こっているから、これらを省略したい.... 以下のコマンドを実行したとき:

data_na_rm <- na.omit(data) 

私は結果として0,42844オブジェクトを取得します。

dim(data_na_rm) #gives me 0 42844 
data_na_rm[1,2] #gives me NA 
data_na_rm[5,3] #gives me NA 
############################ 
data_na_rm[2] #gives me the title of the second column 
data_na_rm[5] #gives me the title fo the fifth 

私は何をしなければなりませんか?私はこのことを何時間も費やしてきました。誰かが私を助けるためにこれのために時間を費やすことができたら、私は感謝します。

+0

'na.omit'は、行内の任意の「NA」を持つすべての行を削除します。あなたはたぶんどこの行にもいくつかの 'NA'を持っています。 – JackStat

+0

' data [data == "?_?"] < - NA' ...これは私には奇妙に見えます。 1つの列に値を置き換えるつもりはありませんでしたか? –

+0

まず、私のために時間を費やしてくれたすべての人に感謝したいと思います.Biegeleisenの私の意図は、data_frameのどこでも '?_ 'の値を' NA'に置き換えることでした。このdata_setでBugsを使用してベイジアンモデルを実行したいので、Bugs/R_Jugsを操作するには、これらの値を最初にNAに置き換えてからそれらを省略する必要があります。それにもかかわらず、私はこのData_frameが各行に少なくとも1つのNA値を含んでいるとは考えていません。 –

答えて

0

コメントでJackStatが言ったように、すべての行にNAsが存在する可能性があります。おそらくあなたはそれをテストする必要がありますか?:

# Some Data. All rows have an NA but not all columns 

    df <- data.frame(col1 = c(NA, 2, 3, 4), 
      col2 = c(1, NA, 3, 4), 
      col3 = c(1, 2, NA, 4), 
      col4 = c(1, 2, 3, NA), 
      col5 = c(1, 2, 3, 4)) 

# test whether an NA is present in each row 

apply(df, 1, function(x) {sum(is.na(x)) > 0}) 
[1] TRUE TRUE TRUE TRUE 

これは、最も多くのNAに寄与している列を見つけるのに役立ちます。それは、NAAの数を合計します。

apply(df, 2, function(x) {sum(is.na(x))}) 
col1 col2 col3 col4 col5 
    1 1 1 1 0 
+0

ああ私の神!!!!私は各行に少なくとも1つのNA値を持っています...あなたは右のウィリアムを持っており、あなたの助けを大変ありがとう。 R_Jugsでベイジアンモデルを実行するために、このdata.frameを処理するために、私が何をしなければならないかを今検索しなければなりません。 –

+0

@GiorgosKうれしいです。がんばろう! – William

+0

@GiorgosK多数のNAsに貢献している特定の列があるかどうかを調べるのに役立つアップデートを追加しました。 – William

関連する問題