studio - tidyr r
Condicional Cuenta en dplyr (3)
Usando ambas ideas previsualizadas y manteniéndolas consistentes:
MemberLTV_2 <- memberorders %>%
group_by(MemID) %>%
summarize(
count2 = length(value[week<=2]),
count4 = length(value[week<=4]),
sum2 = sum(value[week<=2]),
sum4 = sum(value[week<=4])
)
Tengo algunos datos de pedidos de miembros que me gustaría agregar por semana de pedido.
Así es como se ven los datos:
memberorders=data.frame(MemID=c(''A'',''A'',''B'',''B'',''B'',''C'',''C'',''D''),
week = c(1,2,1,4,5,1,4,1),
value = c(10,20,10,10,2,5,30,3))
Estoy usando dplyr para agrupar por "MemID" y resumir "valor" para "semana" <= 2 y <= 4 (para ver cuánto ordenó cada miembro en las semanas 1-2 y 1-4. El código que tengo actualmente es :
MemberLTV <- memberorders %>%
group_by(MemID) %>%
summarize(
sum2 = sum(value[week<=2]),
sum4 = sum(value[week<=4]))
Ahora estoy tratando de agregar dos campos más en el resumen, cuenta 2 y cuenta 4, que contaría el número de instancias de cada condición (semana <= 2 y semana <= 4).
La salida deseada es:
output = data.frame(MemID = c(''A'',''B'',''C'',''D''),
sum2 = c(30,10,5,3),
sum4 = c(30,20,35,3),
count2 = c(2,1,1,1),
count4 = c(2,2,2,1))
Supongo que es solo una pequeña modificación de la función de suma, pero tengo problemas para resolverlo.
Tratar
library(dplyr)
memberorders %>%
group_by(MemID) %>%
summarise(sum2= sum(value[week<=2]), sum4= sum(value[week <=4]),
count2=sum(week<=2), count4= sum(week<=4))
Usando el paquete plyr
uno podría hacer
ddply(memberorders,.(MemID),
summarise,
val1 = sum(value[week<=2]),
val2 = sum(value[week<=4]),
val3 = length(value[week<=2]),
val4 = length(value[week<=4]))
MemID val1 val2 val3 val4
1 A 30 30 2 2
2 B 10 20 1 2
3 C 5 35 1 2
4 D 3 3 1 1