0

R がもっと上手にできたらいいのにと思いますが、かなり基本的なことについて助けが必要です。

セル平均代入を行う関数の作成に問題があります。現在使用しているデータには 3 つの列があり、現在関数を記述している方法では、3 番目の列で観測された値の平均が 3 つの列すべてのすべての NA に代入されます。どうすればこれを修正できますか? ありがとうございました!

cellmean.imp <- function(a){

  for (i in 1:dim(a)[2]){

    new=replace(a, is.na(a), mean(a[, i], na.rm=TRUE))

  }
  return(new)
}

申し訳ありませんが、追加するのを忘れました: 最初の列の観測値の平均を最初の列の NA に代入しようとしています。次に、2 番目の列の観測値の平均を 2 番目の列の NA に代入しようとしています。すぐ。

4

2 に答える 2

1

私があなたを正しく理解していれば、行列のすべての NA に 3 番目の列の平均を入れたいと考えています。

x <- matrix(rnorm(30),10,3)

いくつかの NA を紹介します

x[3,1] <- NA
x[4,1] <- NA
x[5,2] <- NA
x[6,3] <- NA

それらを3列目の平均に置き換えます

x[is.na(x)] <- mean(x[,3],na.rm=TRUE)
于 2013-09-25T05:35:45.960 に答える