У меня есть набор данных, содержащий идентификатор человека и 6 ответов на вопросник под названием sevenup:
> names(sevup_mice_data)
[1] "record_id" "sevenup_01" "sevenup_02" "sevenup_03" "sevenup_04" "sevenup_05" "sevenup_06" "sevenup_07"
Все ответы - числа от 0 до 5. В столбце sevenup_06
отсутствуют значения, поэтому Я хочу использовать mice
для вменения этого.
Вот что я сделал до сих пор:
sevup_mice <- mice(sevup_mice_data, m = 5, method = "pmm", seed = 0,
predictorMatrix = quickpred(sevup_mice_data, exclude = "record_id"))
Теперь, в большинстве уроков, которые я видел, люди используют линейную модель и получить параметры подгонки, а затем объединить результаты, используя pool
, например, что-то вроде:
fit <- with(sevup_mice, exp = lm(sevenup_05 ~ sevenup_04 + sevenup_06))
pool(fit)
Однако мне не нужно подгонять lm
к моим данным, я хочу только получить итоговую оценку за каждого человека, то есть сумму ответов на каждый вопрос.
Если бы я не вменял данные, я бы рассчитал их следующим образом:
sevup_mice_data$sevup_score <- rowSums(sevup_mice_data[2:ncol(sevup_mice_data)], na.rm=TRUE)
Итак Я хотел бы сделать это для каждого из 5 вмененных наборов данных, содержащихся в sevup_mice
, есть ли способ сделать это без al oop, например, с помощью функции with
? И после этого я могу агрегировать результаты с pool
, поскольку в результате моего анализа устанавливаются не параметры, а отдельные столбцы?