У меня есть упомянутый ниже фрейм данных в R.
ID Date Type Value
K-1 2018-01-01 A 4
K-2 2018-01-01 B 7
K-3 2018-01-01 C 12
K-4 2018-01-02 A 6
K-5 2018-01-02 A 4
K-6 2018-01-02 B 15
K-7 2018-01-02 B 10
Я хочу узнать, как преобразовать фрейм данных в нижеприведенный требуемый фрейм данных, где A
, B
и C
должны быть статическимидля каждой даты, независимо от того, доступен ли этот конкретный тип или нет на эту дату.
Кроме того, я хочу посчитать группу ID
по дате и Type
в сегменте <5
(Если значение от 1 до 4), 5-10
(если значение от 5 до 10) и >10
(если значение больше 10).
sum
столбец должен состоять из общегозначения для этой конкретной даты и типа также.
Count
столбец должен состоять из количества групп ID
на определенную дату и Type
.
Обязательный DF
Date Count <5 5-10 >10 sum
2018-01-01 3 1 1 1 23
A 1 1 0 0 4
B 1 0 1 0 7
C 1 0 0 1 12
2018-01-02 4 1 2 1 35
A 2 1 1 0 10
B 2 0 1 1 25
C 0 0 0 0 0
Мой код:
Required_Output <- df1 %>%
group_by(Date, Type) %>%
dplyr::summarise(Count=n(),
A=sum(Type=='A'),
B=sum(Type=='B'),
C=sum(Type=='C')) %>%
ungroup() %>%
complete(Date, Type, fill=list(`Count`=0,A=0, B=0, C=0))
Приведенный выше код не дал мне желаемого результата: (