Спасибо
ая с @AndrewGustar ответа / кода:Разверните data.frame, создав дубликаты на основе групповых условий.
1) Что делать, если у меня есть входные данные.ID
значения не в последовательности, и что также может дублировать себя?
Пример data.frame:
df = read.table(text = 'ID Day Count Count_group
18 1933 6 11
33 1933 6 11
37 1933 6 11
18 1933 6 11
16 1933 6 11
11 1933 6 11
111 1932 5 8
34 1932 5 8
60 1932 5 8
88 1932 5 8
18 1932 5 8
33 1931 3 4
13 1931 3 4
56 1931 3 4
23 1930 1 1
6 1800 6 10
37 1800 6 10
98 1800 6 10
52 1800 6 10
18 1800 6 10
76 1800 6 10
55 1799 4 6
6 1799 4 6
52 1799 4 6
133 1799 4 6
112 1798 2 2
677 1798 2 2
778 888 4 6
111 888 4 6
88 888 4 6
10 888 4 6
37 887 2 3
26 887 2 3
8 886 1 2
56 885 1 1', header = TRUE)
Count
Col показывает общее количествоID
значения для каждогоDay
иCount_group
Col показывает суммуID
значения для каждогоDay
а такжеDay - 1
.
например 1933 =Count_group
11 потому чтоCount
6 (1933) +Count
5 (1932) и т. Д.
Что мне нужно сделать, это создать дублированные наблюдения для каждогоCount_group
и добавить их к нему, чтобы показать для каждогоCount_group
егоDay
А ТАКЖЕDay - 1
.
напримерCount_group
= 11 состоит изCount
значенияDay
1933 и 1932. Таким образом, оба дня должны быть включены вCount_group
= 11. Следующий будетCount_group
= 8, составлено в 1932 и 1931 годах и т. Д.
Желаемый вывод:
ID Day Count Count_group
18 1933 6 11
33 1933 6 11
37 1933 6 11
18 1933 6 11
16 1933 6 11
11 1933 6 11
111 1932 5 11
34 1932 5 11
60 1932 5 11
88 1932 5 11
18 1932 5 11
111 1932 5 8
34 1932 5 8
60 1932 5 8
88 1932 5 8
18 1932 5 8
33 1931 3 8
13 1931 3 8
56 1931 3 8
33 1931 3 4
13 1931 3 4
56 1931 3 4
23 1930 1 4
23 1930 1 1
6 1800 6 10
37 1800 6 10
98 1800 6 10
52 1800 6 10
18 1800 6 10
76 1800 6 10
55 1799 4 10
6 1799 4 10
52 1799 4 10
133 1799 4 10
55 1799 4 6
6 1799 4 6
52 1799 4 6
133 1799 4 6
112 1798 2 6
677 1798 2 6
112 1798 2 2
677 1798 2 2
778 888 4 6
111 888 4 6
88 888 4 6
10 888 4 6
37 887 2 6
26 887 2 6
37 887 2 3
26 887 2 3
8 886 1 3
8 886 1 2
56 885 1 2
56 885 1 1