Я пытаюсь вменять LOCF числовой c переменной «x.val» по двум группам (ID и циклическая категория c переменная «current.group»), но я хочу сделать группы разными, где они разделены строками из разных групп)
data.frame(ID = c("1001", "1001", "1001", "1001", "1001", "1001", "1001", "1002", "1002", "1002", "1002", "1002", "1002", "1002"),
current.group = c("a", "a", "b", "a", "b", "b", "c", "a", "a", "a", "a", "a", "a", "c"),
x.val = c(433, NA, NA, 362, NA, NA, 125, 158, NA, NA, NA, 111, NA, 101))
Я бы хотел добиться вменения только в текущей группе для интанса, 4-я позиция для субъекта 1001 - это та же группа «a», что и строки 1 и 2, но новый цикл, поэтому я хочу, чтобы он был отделен от строк 1 и 2 как отдельная группа. Результат должен быть:
1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1002, 1002
a, a, b, a, b, b, c, a, a, a, a, a, a, c
433, 433, NA, 362, NA, NA, 125, 158, 158, 158, 158, 111, 111, 101
Однако, если я использую функцию group_by, она просто возьмет все экземпляры «current.group» во всем фрейме данных (сгруппированные по идентификатору). Я склонен думать, что есть способ создания производной переменной, которая указывает на эти отдельные группы и group_by для этой новой переменной. Тем не менее, мне интересно, есть ли другой подход в dplyr или с использованием каких-либо других средств
Это трудно объяснить, что я имею в виду, поэтому я надеюсь, что дело доходит до того, что я хочу group_by, но различать экземпляры, разделенные строками другая группа