Вопрос о добавлении переменных в масштабные элементы, включая NA - PullRequest
1 голос
/ 11 мая 2019

Прежде всего, позвольте мне сказать, что это сообщество очень полезно.Что касается моих вопросов:

У меня есть некоторые данные с ответами Ликерта 1-4 с 8, как я не знаю, и 9 как NA.

Я смог заменить свои 8 и9 с NA, используя:

df %>% mutate_all(~ifelse(.x %in% c(8, 9), NA, .x))

и сделал это для каждой переменной.

Моя проблема сейчас в том, что у меня есть хорошо выглядящие данные с NA s, но я пытаюсь преобразовать группыпеременных в элементы непрерывного масштаба.Например, ir1, ir2 и ir3 имеют ответы Лайкерта 1-4 для добавления до ir_scale в диапазоне от 0 до 12. Проблема заключается в том, когда я добавляю их:

irscale <- df$ir1 + df$ir2 + df$ir3

Любая строка, которая имелаNA возвращает NA для суммы.например, 1 + 3 + NA = NA, я хочу, чтобы он вернул 4.

Я не могу превратить NA s в 0, так как я собираюсь использовать регрессии позже.Мысли?Вот пример набора данных:

https://drive.google.com/file/d/1HwtjJ-nChRwVuVQhAYucB_JkUagVtByj/view?usp=sharing

Ответы [ 2 ]

1 голос
/ 11 мая 2019

Вы можете использовать rowSums для этого. na.rm=T является общим параметром для работы с NA s

mtcars[ 3, 3] <- NA
mtcars$newvar <- rowSums( mtcars[ , 3:5], na.rm=T)
1 голос
/ 11 мая 2019

Один из вариантов - rowSums, который может заботиться о NA с na.rm = TRUE

df %>%
      mutate(irscale = rowSums(.[paste0("ir", 1:3)], na.rm = TRUE))

или с использованием base R

irscale <- rowSums(df[paste0("ir", 1:3)], na.rm = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...