Próbuję zwiększyć kolumnę na grupę. Jeśli więc istnieje wartość, zwiększamy ją w oparciu o wartość przed nią, w przeciwnym razie ją opuścimy.Zwiększenie według grupy
Na przykład przejdzie z df do dfb.
df <- data.frame(group = c("A", "A", "B", "B", "B", "C", "C", "C", "D", "D"),
num = c(1, NA, NA, 8, NA, 5, NA, NA, 10, NA))
dfb <- data.frame(group = c("A", "A", "B", "B", "B", "C", "C", "C", "D", "D"),
num = c(1, 2, NA, 8, 9, 5, 6, 7, 10, 11))
> df
group num
1 A 1
2 A NA
3 B NA
4 B 8
5 B NA
6 C 5
7 C NA
8 C NA
9 D 10
10 D NA
> dfb
group num
1 A 1
2 A 2
3 B NA
4 B 8
5 B 9
6 C 5
7 C 6
8 C 7
9 D 10
10 D 11
Moja najlepsza próba była to ale to nie działa
dfc <- df %>%
mutate(num = ifelse(is.na(num),lag(num) + 1, num))
Usunięto moje poprzednie pytanie, ponieważ mój problem wcześniej źle zdefiniowane. Dzięki za pomoc!
Nie jest jasne, dlaczego został usunięty wcześniej pytanie, ponieważ moje rozwiązanie w usuniętym jednym współpracuje z nowym przykład jak dobrze – akrun