Психологи почти все время работают со шкалами Лайкерта, и, допустим, у меня есть этот набор данных:
data <- data.frame(x1 = c(NA,2,4),
x2 = c(NA,3,2),
x3 = c(NA,6,NA))
Я хотел бы использовать RowSums только в том случае, если X1, X2 и X3 не отсутствуют.
Это не сработает, потому что не будут учитываться никакие переменные с пропущенными регистрами:
data %>%
mutate(total_score = rowSums(select(.,x1:x3), na.rm=F))
И это тоже не сработает:
data %>%
filter_at(vars(x1:x2), any_vars(!is.na(.))) %>%
mutate(total_score = rowSums(select(.,x1:x3), na.rm=T))
Потому что он отфильтрует мой набор данных, а затем уменьшит количество наблюдений.
Поэтому я хотел бы интегрировать фильтр в mutate.
Я прочитал сообщение перед этим, но мне не удалось его реализовать.
ps: Я хотел бы сохранить в окружении tidyverse. Спасибо
Мой код:
data <- data.frame(x1 = c(NA,2,4),
x2 = c(NA,3,2),
x3 = c(NA,6,NA))
data %>%
mutate(total_score = rowSums(select(.,x1:x3), na.rm=F))
data %>%
filter_at(vars(x1:x2), any_vars(!is.na(.))) %>%
mutate(total_score = rowSums(select(.,x1:x3), na.rm=T))
data %>% mutate(total_score = rowSums(select(.,x1:x3), na.rm=F))
? Он дастNA
, если есть хотя бы одинNA
, и суммирует ваши данные, только если все значения неNA
. Разве ты не этого хочешь? Каков ваш ожидаемый результат? - person Ronak Shah   schedule 31.05.2021total_score
, когда все значения отсутствовали. Спасибо за Ваш интерес !! - person Luis   schedule 01.06.2021