Обращение значений переменных в R - PullRequest
0 голосов
/ 10 апреля 2020

Я видел различные вопросы о перекодировании переменных (например, Перекодирование переменных с R ), но мне было интересно, есть ли простой способ полностью «перевернуть» данные. В настоящее время я работаю с переменной x, которая имеет значение от 0 до 30, которое подсчитывает количество дней, которые пациент НЕ провел в отделении интенсивной терапии. То, что я хочу, это количество дней, проведенных в отделении интенсивной терапии, то есть, если бы кто-то не провел ни одного дня в отделении интенсивной терапии, у них было бы значение x=30, но мне нужно значение x=0 и так далее и тому подобное. Очевидно, что я мог бы перекодировать каждое значение по отдельности, но в целях сохранения нажатий клавиш и получения дополнительной информации о R мне было интересно, есть ли простое решение.

Ответы [ 3 ]

2 голосов
/ 10 апреля 2020

Вы можете просто инвертировать данные, используя (x - max(x)) * -1) + min(x)

inv <- function(x){ ((x - max(x)) * -1) + min(x) }
  icu <- 0:30
    inv(icu)

Причина не просто вычитания состоит в том, что это работает и на векторах с отрицательными значениями.

( icu <- seq(-1,1,0.1) )
  inv(icu)
0 голосов
/ 10 апреля 2020

с использованием вычитания:

x<-0:30
y<-30-x

0 голосов
/ 10 апреля 2020

Сложение и вычитание в R векторизованы. Это означает, что вы можете применить функцию к вектору, и она будет возвращать вектор, вместо того, чтобы использовать l oop над вектором.

set.seed(999)
ICU = sample(30) ## number of days in ICU
not_ICU = 30 - ICU ## returns number of days not in ICU

Помогает ли это?

...