如何查看复杂数据集的中位数和IQR

xbp102n0  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(103)

现在,我有一个 Dataframe “df”。我现在想优雅地获得R中S ==“a”和G ==“A”时的中值和IQR。不仅如此,我还想得到S和G为其他值时R中值的中位数和IQR。我想知道一个既方便又优雅的方法。请帮帮我

df<-data.frame(
      S = c("a","a","a","a","a", "b","b","b","b","b","a","a"),
      R = c("10","15","20","30","30","30","30","30","30","30","15","20"),
      G = c("A","B","B","B","B","B","B","A","A","A","A","A"))

字符串

s4n0splo

s4n0splo1#

您可以使用summary函数中提供的.by参数。这就像group_by一样。请注意,您的R不是数字,因此我们在进行任何计算之前将其强制为数字。IQR函数自动执行此操作。

df %>%
   summarise(med = median(as.numeric(R)), iqr = IQR(R), .by = c(S,G))

  S G med   iqr
1 a A  15  5.00
2 a B  25 11.25
3 b B  30  0.00
4 b A  30  0.00
df %>%
   group_by(S, G) %>%
   summarise(med = median(as.numeric(R)), iqr = IQR(R))

# A tibble: 4 × 4
# Groups:   S [2]
  S     G       med   iqr
  <chr> <chr> <dbl> <dbl>
1 a     A        15   5  
2 a     B        25  11.2
3 b     A        30   0  
4 b     B        30   0

相关问题