2017-06-15 10 views
0

大きなデータセットを使用しています。この大きな(286,212行、19列)を使用するのに慣れていないため、問題の解決方法がわかりません。データは782グリッド参照の年の各日の値で構成されており、これは15年間保持しています。NAを特定の日とグリッドの平均値に置き換えてください

**Month Day Grid x2004 x2005 x2006  x2007** 
1  1 A10 0.091 0.134  NA  0.066 
1  2 A10 0.12 0.10  0.23  0.054 
1  3 A10 0.55 NA  NA  0.08 
1  1 B10 NA  0.134  NA  0.17 
1  2 B10 0.14 0.151  NA  0.21 
1  3 B10 0.43 0.162  0.24  NA 

を次のように見えますが日の一部が欠けていると私は他の年の値を使用して、その特定のグリッドのその日の平均値を挿入します。したがって、2006年の第1日のグリッドA10が欠けている場合。私は2004年、2005年、2007年、この場合は0.097日の1日目のグリッドA10の平均を挿入したいと思います。

私は、次のコード

をしようとしていると私はすべての年のためにそれを行うことを計画が、私はクラスをチェックするとき、それは彼らがすべてであることを述べているが、それは私に

"Error in rowMeans(data[c(data$x2006[i], data$x2007[i], data$x2012[i]), : 
    'x' must be numeric" 

を語っています数値なので、なぜxが数値でないのか分かりません。平均部分がソートされても、各グリッドとその日に固有の平均値が得られるようにコードが機能するかどうかはわかりません。

お願いします。おかげ

+0

この 'ライブラリー(動物園)のためdupesがありますが、ライブラリー(dplyr)。 – akrun

+0

申し訳ありませんが、あなたが何を意味するのか本当に知りません。それは働いていません。 – Fosulli

+0

あなたはあなたに何かを見せることができますか?期待される出力 – akrun

答えて

0

あなたのコードにこれを適応させることができます:

for(i in 1:ncol(data)){ data[is.na(data[,i]), i] <- mean(data[,i], na.rm = TRUE) }

+0

いいえ、うまくいきませんでした。その特定の日の平均ではなく、全体的な平均が見つかり、それを挿入したと思う – Fosulli

+0

私は列平均を見つけ出して追加していると思う。行の平均を計算する方法がわからない。 rowMeansは機能しません。 – Fosulli

+0

[i、]とncolをnrowに変更することがあります –

関連する問題