gpt4 book ai didi

r - 将 dplyr summarise_at 与列索引一起使用

转载 作者:行者123 更新时间:2023-12-03 11:29:59 30 4
gpt4 key购买 nike

我注意到在向 dplyr::summarize_at 提供列索引时确定要汇总的列,不包括分组列。我想知道这是否应该是这样,因为通过这种设计,使用正确的列索引取决于汇总列是位于分组列之前还是之后。

下面是一个例子:

library(dplyr)
data("mtcars")

# grouping column after summarise columns
mtcars %>% group_by(gear) %>% summarise_at(3:4, mean)
## A tibble: 3 x 3
# gear disp hp
# <dbl> <dbl> <dbl>
#1 3 326.3000 176.1333
#2 4 123.0167 89.5000
#3 5 202.4800 195.6000

# grouping columns before summarise columns
mtcars %>% group_by(cyl) %>% summarise_at(3:4, mean)
## A tibble: 3 x 3
# cyl hp drat
# <dbl> <dbl> <dbl>
#1 4 82.63636 4.070909
#2 6 122.28571 3.585714
#3 8 209.21429 3.229286

# no grouping columns
mtcars %>% summarise_at(3:4, mean)
# disp hp
#1 230.7219 146.6875

# actual third & fourth columns
names(mtcars)[3:4]
#[1] "disp" "hp"

packageVersion("dplyr")
#[1] ‘0.7.2’

请注意汇总列如何根据分组列的分组和位置而变化。

这在其他平台上是一样的吗?这是一个错误还是一个功能?

最佳答案

与版本 0.7.5无法再重现此行为:

  library(dplyr)
mtcars %>% group_by(gear) %>% summarise_at(3:4, mean)
# # A tibble: 3 x 3
# gear disp hp
# <dbl> <dbl> <dbl>
# 1 3 326. 176.
# 2 4 123. 89.5
# 3 5 202. 196.

mtcars %>% group_by(cyl) %>% summarise_at(3:4, mean)
# # A tibble: 3 x 3
# cyl disp hp
# <dbl> <dbl> <dbl>
# 1 4 105. 82.6
# 2 6 183. 122.
# 3 8 353. 209.

关于r - 将 dplyr summarise_at 与列索引一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45883513/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com