【问题标题】:Define a quantile group in a dataframe with the data source in another dataframe in R在数据框中定义分位数组,数据源在 R 中的另一个数据框中
【发布时间】:2020-02-18 23:04:46
【问题描述】:

我使用下一个代码从命名向量中的数据帧获取分位数信息:

library(tidyverse)

quant_mpg <- mtcars %>% 
  pull(mpg) %>% 
  quantile(probs = seq(0, 1, 0.1))

我想在创建帖子的摘要数据框中删除这个分位数:

grouped_mtcars <- mtcars %>% 
  group_by(cyl) %>% 
  summarize(mpg = mean(mpg)) %>% 
  ungroup() %>% 
  mutate(quantile = cut(mpg, quant_mpg, labels = FALSE))

获取下一个输出:

# A tibble: 3 x 3
    cyl   mpg quantile
  <dbl> <dbl>    <int>
1     4  26.7        9
2     6  19.7        6
3     8  15.1        2

有没有一种方法可以在不定义 quant_mpg 向量的情况下使分组变量变得简单。我需要这种方式,因为我有几个组变量和分组数据帧,我需要在没有太多处理的情况下获得分位数。

【问题讨论】:

    标签: r tidyverse


    【解决方案1】:

    我们可以从原始数据中提取列

    library(dplyr)
    mtcars %>% 
       group_by(cyl) %>% 
       summarise(mpg = mean(mpg)) %>%
       mutate(quantile = cut(mpg,  quantile(mtcars[['mpg']], #####
                probs = seq(0, 1, 0.1)), labels = FALSE))
    # A tibble: 3 x 3
    #    cyl   mpg quantile
    #  <dbl> <dbl>    <int>
    #1     4  26.7        9
    #2     6  19.7        6
    #3     8  15.1        2
    

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 2022-12-14
      相关资源
      最近更新 更多