來計算中值兩組中的數據幀我有以下的數據幀:如何使用aggergate
x y
A 13.5
C 12
D 13
E 11
B 13
E 12.4
A 14
A 17.1
F 15
F 11
F 12
E 14.4
我想要計算使用y進行了中位數和E,其爲13.75
是否可以使用聚合來計算它? R中簡單的解決方案是什麼? 非常感謝您的幫助。
來計算中值兩組中的數據幀我有以下的數據幀:如何使用aggergate
x y
A 13.5
C 12
D 13
E 11
B 13
E 12.4
A 14
A 17.1
F 15
F 11
F 12
E 14.4
我想要計算使用y進行了中位數和E,其爲13.75
是否可以使用聚合來計算它? R中簡單的解決方案是什麼? 非常感謝您的幫助。
我們可以在 'X' 用%in%
filter
值並計算 'Y' 的median
library(tidyverse)
df1 %>%
filter(x %in% c("A", "E")) %>%
summarise(y = median(y))
如果我們需要按組來計算的話,那麼
df1 %>%
filter(x %in% c("A", "E")) %>%
group_by(x) %>%
summarise(y = median(y))
或者base verse
median(subset(df1, x %in% c("A", "E"), select = y)[,1])
#[1] 13.75
這可以被小型
median(df1$y[df1$x %in% c("A", "E")])
這裏是一個使用數據子集的一個簡單的解決方案:
df <- data.frame(x = c("A", "C", "D", "E", "B", "E", "A", "A", rep("F", 3), "E"),
y = c(13.5, 12, 13, 11, 13, 12.4, 14, 17.1, 15, 11, 12, 14.4))
median_A_and_E <- median(df$y[df$x == "A" | df$x == "E"])
> median_A_and_E
[1] 13.75
你不需要'aggregate'如果你不想計算中位數爲每(子集)級別。只要做一個常規子集並計算中位數就像akrun所顯示的那樣。 –