如果我有一個簡單的數據框和2個因子(a和b)以及2個等級(1和2)和1個變量(x),我怎樣才能得到x :在因子a的每個水平上的中位數x,因子b的每個水平以及a * b的每個組合。R-dplyr對因素組合的總結
library(dplyr)
df <- data.frame(a = as.factor(c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2)),
b = as.factor(c(1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,2)),
x = c(runif(16)))
我已經試過各種(多)版本:
df %>%
group_by_(c("a", "b")) %>%
summarize(med_rate = median(df$x))
結果應該是這樣的中位數X因子的每個級別:
中位數
1 0.58811
2 0.53167
而像這樣的中位數X因子B的每個電平的:
b位數
1 0.60622
2 0.46096
而像這樣的中值X的每個組合a和b:
AB中位數
1 1 0.66745
1 2 0.34656
2 1 0.50903
2 2 0.55990
預先感謝任何幫助。
採取'DF $'出來的'summarise' –
你不需要引號,你可以使用'group_by'即'DF%>%GROUP_BY(A,B)%>%綜述(med_rate = median(x))' – akrun
謝謝。但是這給了我一箇中位值;在16次觀測中的中位數x。它不給我每個因子(a和b)的每個等級(1和2)和每個a * b組合的每個等級的中值。 –