将子组应用于R中的子组

  • 本文关键字:应用于 r subset
  • 更新时间 :
  • 英文 :


我有此代码可以基于分位数创建两个子集列,一个用于中间拆分的列,一个用于四分位数的列。

 mtcars <- subset(mtcars, select = c("cyl", "disp"))
 mtcars$median_split <- ifelse(mtcars$disp <= median(mtcars$disp), "below_median","above_median")
 mtcars$quantile_split <- cut(mtcars$disp, breaks = c(0, quantile(mtcars$disp)),labels = c("1_quartile",paste0(1:4, "_quartile")))

这对整个数据集都很好,但是我该如何为每个cyl分别执行此操作,请?

因此,我希望根据每个cyl组中的disp值打印中位数/四分位数拆分标签。谢谢。

这可以使用dplyr软件包来完成:

library(dplyr)
mtcars %>%
  select(cyl, disp) %>%
  group_by(cyl) %>%
  mutate(median_split = ifelse(disp <=median(disp), "below_median","above_median"),
         quartile_split = cut(disp, breaks = c(0, quantile(disp)), labels = c("1_quartile",paste0(1:4, "_quartile")))) %>%
  arrange(cyl)

此代码按cyl列将数据分组,然后根据每个cyl组中的disp值计算median_splitquartile_split

最新更新