Я новичок в R, и у меня возникают проблемы при создании нового столбца со значениями, полученными из указанного c набора инструкций. Мой фрейм данных с именем labdata_wide
выглядит следующим образом:
Всего 51 строка, по одной на каждого участника, и 5 столбцов (participant
, group
, baseline
, week 4
и week 8
). Я хотел бы создать еще один столбец с именем change
, который после проверки участников group
(т. Е. Если участники группы А или B) затем выполняет 1 из 2 возможных вычислений вычитания.
Я хочу группу Участники должны вычесть свои значения baseline из своих значений неделя 4 И участникам группы B вычесть их значения week 4 из их неделя 8 значения.
Группа A -> неделя 4 - базовый уровень
Группа B -> неделя 8 - неделя 4
Все рассчитанные значения должны быть в одном столбце. Возможно ли это сделать?
Я пытался поиграться с пакетом dplyr
, в частности с функцией mutate, но я не смог понять, как решить проблему.
Код, который я пробовал:
labdata_wide %>% group_by(group) %>% mutate(change = week 4[group == 'A'] - baseline[group == 'A'])
Но я получаю код ошибки:
Error: Column "change" must be length 24 (the group size) or one, not 0
Проблема незнакомца в том, что даже если я указал, какую группу (то есть A) Я считаю, что он использует значения группы B, потому что в моем df есть 27 членов группы A и 24 члена группы B.