ฉันกำลังดิ้นรนเล็กน้อยกับโครงสร้าง dplyr ใน R ฉันต้องการจัดกลุ่มตามระดับปัจจัยที่แตกต่างกันสองระดับตามลำดับเพื่อให้ได้ผลรวมของตัวแปรอื่น
นี่คือตัวอย่างที่สามารถทำซ้ำได้
df <- data.frame(c("A", "A", "A", "B", "C", "C","C"),
c("1", "1", "3", "2", "3", "2","2"),
c(12, 45, 78, 32, 5, 7, 8))
colnames(df) <- c("factor1","factor2","values")
และนี่คือความพยายามของฉันจนถึงตอนนี้
test <- df %>%
group_by(factor1, factor2) %>%
summarise(sum(values))
# A tibble: 5 x 3
# Groups: factor1 [3]
factor1 factor2 `sum(values)`
<fct> <fct> <dbl>
1 A 1 57
2 A 3 78
3 B 2 32
4 C 2 15
5 C 3 5
แต่มันไม่ใช่สิ่งที่ฉันกำลังมองหา ฉันต้องการมีหนึ่งแถวต่อปัจจัย 1 โดยผลลัพธ์จะเป็นดังนี้ (และ 0 ก็คิดเป็นเช่นกัน)
1 2 3
A 57 0 78
B 0 32 0
C 0 15 5
ข้อเสนอแนะใด ๆ ?