Я хочу перекодировать значения в матрице таким образом, чтобы все значения < = .2 становились 2, < = .4 становятся 3 и т. Д. Однако в моих данных есть пропуски, которые я делаю не хотят менять (держать их NA). Здесь вы найдете упрощенную версию моего кода. Использование na.omit отлично работает в течение первых измененийЗначения переопределения, опуская NA
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
Однако, когда я делаю то же самое для высшей категории, НС также изменяется:
try[na.omit(try <= .8)] <- 5 #changes all other values including the NA to 5
Может кто-нибудь объяснить мне, что это разница между двумя и почему вторая также изменяет значение NA, а первое - нет? Или я делаю что-то еще неправильно?
Вы можете просто сделать 'попробовать [попробовать < = .8] <- 5'. НС останется таковым. или вы можете иметь условие 'try [try <=. 8 &! is.na (попробуйте)] <- 5' – akrun
Спасибо, я ожидал, что это тоже будет довольно легко. Я не пытался, потому что 'try [try <= .8]' включил NA, но хорошо знать, что при изменении значений это не так. – VandenEnden