dplyr组不使用美元符号数据$COLUMN语法 [英] dplyr groups not working with dollar sign data$column syntax

查看:20
本文介绍了dplyr组不使用美元符号数据$COLUMN语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要查找每个组的列的最小值和最大值:

mtcars %>%
  group_by(mtcars$cyl) %>%
  summarize(
    min_mpg = min(mtcars$mpg),
    max_mpg = max(mtcars$mpg)
  )
# # A tibble: 3 x 3
#   `mtcars$cyl` min_mpg max_mpg
#          <dbl>   <dbl>   <dbl>
# 1            4    10.4    33.9
# 2            6    10.4    33.9
# 3            8    10.4    33.9

它在很大程度上是有效的,并且数据集的格式看起来很好。但是,它给出了整个数据集的最小和最大值,而不是每个单独组的最小值和最大值。

推荐答案

请勿在dplyr函数内使用$,它们需要无引号的列名。

mtcars$mpg具体引用原始输入数据框中的整列,而不是来自group_by的分组Tibble。更改您的代码以删除data$,它将正常工作:

mtcars %>%
  group_by(cyl) %>%
  summarize(
    min_mpg = min(mpg),
    max_mpg = max(mpg)
  )
# # A tibble: 3 x 3
#     cyl min_mpg max_mpg
#   <dbl>   <dbl>   <dbl>
# 1     4    21.4    33.9
# 2     6    17.8    21.4
# 3     8    10.4    19.2

(更不用说打字更少了!)

这篇关于dplyr组不使用美元符号数据$COLUMN语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆