>head(df)
person week target actual drop_out organization agency
1: QJ1 1 30 19 TRUE BB LLC
2: GJ2 1 30 18 FALSE BB LLC
3: LJ3 1 30 22 TRUE CC BBR
4: MJ4 1 30 24 FALSE CC BBR
5: PJ5 1 35 55 FALSE AA FUN
6: EJ6 1 35 50 FALSE AA FUN
В наборе данных имеется приблизительно 30 недель с повторяющимся идентификатором личности каждую неделю.R: Создайте столбец средних значений по группам из четырех рядов.
Я хочу посмотреть значения каждого человека за четыре недели за раз (так что 1-4, 5-9, 10-13 и так далее). Для каждого из этих фрагментов я хочу добавить все «фактические» столбцы и разделить его на сумму «целевых» столбцов. Затем мы могли бы поместить это значение в столбец, называемый «ежемесячный процент».
В соответствии с рекомендацией формы, я создал месяц колонку, как так
fullReshapedDT$month <- with(fullReshapedDT, ceiling(week/4))
Пытаясь выяснить, как перебрать столбец месяца и вычислить средние значения в настоящее время. Попытка что-то вроде этого, но она явно не работает:
fullReshapedDT[,.(monthly_attendance = actual/target,by=.(person_id, month)]
Где именно вы застреваете? Это поможет, если вы предоставили [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) (возможно, с поддельными данными), чтобы лучше проиллюстрировать проблема. Дайте желаемый результат для ввода образца, поэтому возможные решения могут быть протестированы. Если вы попытаетесь сделать это самостоятельно, включите свой код и укажите, где именно вы застреваете. – MrFlick
Создайте новый столбец, используя что-то вдоль линии «потолок (неделя/4) * 4', а затем группируйте его по – Shape
Спасибо за идею, Shape. Попробуй это сейчас – Parseltongue