dplyr 组不使用美元符号 data$column 语法
dplyr groups not working with dollar sign data$column syntax
我正在寻找每个组的列的最小值和最大值:
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
的分组小标题。更改您的代码以删除 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
(更不用说打字少了很多!)
我正在寻找每个组的列的最小值和最大值:
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
的分组小标题。更改您的代码以删除 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
(更不用说打字少了很多!)