4
,我有以下的數據:tidyr價差不會彙總數據
> data <- data.frame(unique=1:9, grouping=rep(c('a', 'b', 'c'), each=3), value=sample(1:30, 9))
> data
unique grouping value
1 1 a 15
2 2 a 21
3 3 a 26
4 4 b 8
5 5 b 6
6 6 b 4
7 7 c 17
8 8 c 1
9 9 c 3
我想創建一個表,看起來像這樣:
a b c
1 15 8 17
2 21 6 1
3 26 6 3
我使用tidyr ::蔓延和沒有得到正確的結果:
> data %>% spread(grouping, value)
unique a b c
1 1 15 NA NA
2 2 21 NA NA
3 3 26 NA NA
4 4 NA 8 NA
5 5 NA 6 NA
6 6 NA 4 NA
7 7 NA NA 17
8 8 NA NA 1
9 9 NA NA 3
或者
> data %>% select(grouping, value) %>% spread(grouping, value)
Error: Duplicate identifiers for rows (1, 2, 3), (4, 5, 6), (7, 8, 9)
當一個組(c)的長度與其他組的長度不同時,是否有辦法做到這一點?
你需要一個序列字段'數據%>%GROUP_BY(分組)%>%突變(ID = ROW_NUMBER())%>%選擇(-unique)%>%傳播(分組,值)' – akrun