0
考慮這種情況,我想要在summarize_each
中使用混合列類型的data.frame。如何總結每列混合列類
> (temp=data.frame(ID=c(1,1,2,2),gender=c("M","M","F","F"),val1=rnorm(4),val2=rnorm(4)))
ID gender val1 val2
1 1 M -1.7944804 0.5232313
2 1 M 0.3938437 -0.8424086
3 2 F -0.3190777 0.3220580
4 2 F 1.3667340 -0.6031376
> temp%>%group_by(ID)%>%summarize_each(funs(mean))
Source: local data frame [2 x 4]
ID gender val1 val2
(dbl) (lgl) (dbl) (dbl)
1 1 NA -0.7003184 -0.1595886
2 2 NA 0.5238282 -0.1405398
這不起作用,因爲mean(gender)
沒有意義。
問題: 如果我所有的非數字列的ID
特點,因此,每個ID
內是相同的,可不知何故,我得到summarize_each
回到那「獨一無二」的價值?
> temp%>%group_by(ID,gender)%>%summarize_each(funs(mean))
Source: local data frame [2 x 4]
Groups: ID [?]
ID gender val1 val2
(dbl) (fctr) (dbl) (dbl)
1 1 M -0.7003184 -0.1595886
2 2 F 0.5238282 -0.1405398
是我想要的輸出,但我有點喜歡這種感覺是做不必要的嵌套group_by
因爲實在是沒什麼好組內ID
。
'TEMP%>%GROUP_BY(ID)%>%summarize_each(玩意兒(平均值),VAL1:val2的)'或另一種選擇是'TEMP%>%GROUP_BY(ID)%>%summarise_if(是。數字,平均數)' – akrun
@akrun我更新了問題以使其更清晰。我確實希望返回具有唯一值的性別列。 – qoheleth
您可以在'summarise_each'中傳遞多個函數,但是它會爲所有列執行此操作。你真的需要dplyr還是可以有其他解決方案?我認爲用'dplyr',可能不能用'summarise_each' – akrun