4

すべての値 <=.2 が 2 になり、<=.4 が 3 になるように、マトリックスの値を再コード化したいと考えています。 NA)。ここに、私のコードの簡略化されたバージョンがあります。na.omit を使用すると、最初の変更で完全に機能します

try <- matrix(c(0.78,0.62,0.29,0.47,0.30,0.63,0.30,0.20,0.15,0.58,0.52,0.64,
     0.76,0.32,0.64,0.50,0.67,0.27, NA), nrow = 19)
try[na.omit(try <= .2)] <- 2 #Indeed changes .20 and .15 to 2 and leaves the NA as NA

ただし、より高いカテゴリに対して同じことを行うと、NA も変更されます。

try[na.omit(try <= .8)] <- 5 #changes all other values including the NA to 5

誰かが私に2つの違いは何ですか、そしてなぜ2番目のものもNA値を変更するのに最初のものは変更しないのか説明できますか? それとも私は何か他のことを間違っていますか?

4

1 に答える 1

1

できるよ

try[try <= .8] <- 5

値はNAそのままですNA

NAまたは、値を除外する論理条件を作成します

try[try <=.8 & !is.na(try)] <- 5
于 2015-03-07T15:22:05.430 に答える