Как использовать множественную замену в r без изменения исходного набора данных? - PullRequest
1 голос
/ 21 января 2020

У меня есть набор данных, в котором мне нужно заменить для одной из переменных все значения выше .99 процентиля и ниже 0 на NA. Поскольку мне нужно построить несколько переменных, я пытаюсь создать шаблон, в котором я могу просто ввести переменные, которые мне нужны, и затем сохранить их без изменения исходного набора данных, так как мне нужно сделать график другого типа.

Как мне вставить две функции замены?

na.omit(replace(data$Sodio, which(data$Sodio <0), NA)))

это первый, который я использовал, но мне также нужно заменить число выше этого числа

quantile(data$Sodio, probs=c(0.99), na.rm=TRUE)

Так что мне нужно что-то вроде

na.omit(replace(data$Sodio, which(data$Sodio>quantile(data$Sodio, probs=c(0.99), na.rm=TRUE), NA)))

Можно ли просто написать одну строку и достичь обеих?

1 Ответ

2 голосов
/ 21 января 2020

Вы можете объединить два условия с ИЛИ (|)

new_data <- transform(data, Sodio = replace(Sodio, 
             Sodio > quantile(Sodio, probs=0.99, na.rm=TRUE) | Sodio < 0, NA))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...