`dplyr`不使用美元符号数据$column语法的组

`dplyr`不使用美元符号数据$column语法的组,r,dplyr,group-by,summarize,r-faq,R,Dplyr,Group By,Summarize,R Faq,我希望找到每个组的列的最小值和最大值: 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

我希望找到每个组的列的最小值和最大值:

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
mtcars%>%
分组依据(mtcars$cyl)%>%
总结(
min_mpg=min(mtcars$mpg),
最大车流量=最大车流量(mtcars$mpg)
)
##tibble:3 x 3
#`mtcars$cyl`min_mpg max_mpg
#                
# 1            4    10.4    33.9
# 2            6    10.4    33.9
# 3            8    10.4    33.9

它在大多数情况下都有效,数据集的格式看起来不错。但是,它给出了整个数据集的最小值和最大值,而不是每个组的最小值和最大值。

不要在
dplyr
函数中使用$in,它们需要不带引号的列名

mtcars$mpg
特别引用原始输入数据帧中的整列,而不是从
group\u by
导出的分组TIB。更改您的代码以删除
数据$
,它将起作用:

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
mtcars%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
总结(
min_mpg=min(mpg),
max_mpg=max(mpg)
)
##tibble:3 x 3
#气缸最小压力最大压力
#         
# 1     4    21.4    33.9
# 2     6    17.8    21.4
# 3     8    10.4    19.2

(更不用说打字了!)

@GregorThomas,我觉得这是一个现在很常见的问题,但我找不到一个好的“被骗”问题/答案。(更不用说搜索以<代码>“$”为中心的问题并不容易。)你知道有什么问题吗?“把这句话加上去也许很好?@GregorThomas谢谢你!这确实奏效了。这肯定会对我将来使用dplyr有所帮助。强烈同意将其添加到r-faq中。我将把我的评论转换成回答。但这样的搜索有问题吗?我现在在搜索
[r-faq]
标签时没有得到任何结果,虽然我可以按问题标题搜索并找到常见问题…@r2evans但现在真正的挑战是,如果这是一个常见问题,那就是尽可能使其可搜索。我建议加入“美元符号”或“美元”,这是我的一次搜索尝试(不是很成功)。