Можем ли мы каким-либо образом заменить значение в Matrix на NA, используя только функцию применения?

Я хочу заменить значение больше 8 на NA, используя только функцию «Применить» в матрице от 1 до 20.

m <- matrix(c(1:10, 11:20), nrow = 5, ncol = 4)

Я пробовал apply(m, 1:2, function(x) x = replace_na(x, 0)) после обнуления значений (в зависимости от того, что было больше 8). Второе, что я пробовал, это

apply(m, 1:2, function(x) is.na(x) <- !x)

Третье, что я пробовал, это

apply(m, 1:2, function(x) replace_na(x>8))

Матрица должна иметь все значения как NA от 9 до 20


person New_to_ML    schedule 26.09.2019    source источник
comment
По строкам или по столбцам, или по обоим? Попробуйте apply(m, 1,function(x) ifelse(x>8,NA,x))   -  person NelsonGon    schedule 26.09.2019
comment
Вам не нужно apply - вы можете просто сделать m[m>8] <- NA   -  person Andrew Gustar    schedule 26.09.2019
comment
благодаря тонну! это сработало-применить (m, 1: 2, функция (x) ifelse (x > 8, NA, x))   -  person New_to_ML    schedule 26.09.2019


Ответы (1)


Мы можем назначить с is.na

`is.na<-`(m, m > 8)
person akrun    schedule 26.09.2019