Учитывая следующий кадр данных:Replicate значение строки после фактора
df <- data.frame(patientID = rep(c(1:4), 3),
condition = c(rep("A", 4), rep("B",4), rep("C",4)),
weight = round(rnorm(12, 70, 7), 1),
height = round(c(rnorm(4, 170, 10), rep(0, 8)), 1))
> head(df)
patientID condition weight height
1 1 A 71.43 168.5
2 2 A 59.89 177.3
3 3 A 72.15 163.4
4 4 A 70.14 166.1
5 1 B 66.21 0.0
6 2 B 66.62 0.0
Как я могу скопировать высоту для каждого пациента из состояния А в двух других условиях? Я пробовал использовать для циклов, data.table и dplyr без успеха.
Как я могу достичь этого, используя либо методы?
Это не устойчиво к перестановкам строк, не так ли? 'DF <-df [образец (nrow (DF)),]; df $ height <- df $ height [df $ patientID] 'Итак, вы предполагаете, что все должно быть отсортировано? – MrFlick
Мне кажется, что он уже отсортирован. –
Согласен. Данные выборки сортируются. Я просто хотел пояснить, что это требование. Также это будет работать только для пациентов, которые начинаются с 1. Если вы добавили 10 к каждому идентификатору, у вас также возникнет проблема, если вы не преобразуете идентификатор пациента в фактор. – MrFlick