gpt4 book ai didi

r - 如何 group_by(everything())

转载 作者:行者123 更新时间:2023-12-04 12:17:40 25 4
gpt4 key购买 nike

我想使用 dplyr 计算数据框中的唯一组合

我尝试了以下方法:

require(dplyr)

set.seed(314)
dat <- data.frame(a = sample(1:3, 100, replace = T),
b = sample(1:2, 100, replace = T),
c = sample(1:2, 100, replace = T))

dat %>% group_by(a,b,c) %>% summarise(n = n())

但是为了使这个通用(与列的名称无关),我尝试了:
dat %>% group_by(everything()) %>% summarise(n = n())

结果是:
    a     b     c     n
<int> <int> <int> <int>
1 1 1 1 6
2 1 1 2 8
3 1 2 1 13
4 1 2 2 8
5 2 1 1 7
6 2 1 2 12
7 2 2 1 14
8 2 2 2 10
9 3 1 1 3
10 3 1 2 4
11 3 2 1 7
12 3 2 2 8

这给出了错误
Error in mutate_impl(.data, dots) : `c(...)` must be a character vector

我摆弄了不同的东西,但无法让它发挥作用。我知道我可以使用 names(dat)但是数据框中需要位于 group_by() 中的列取决于 dplyr 中前面的步骤链。

最佳答案

有一个函数叫 group_by_all() (在同样的意义上 group_by_atgroup_by_if )正是这样做的。

library(dplyr)

dat %>%
group_by_all() %>%
summarise(n = n())

这给出了相同的结果,

# A tibble: 12 x 4
# Groups: a, b [?]
a b c n
<int> <int> <int> <int>
1 1 1 1 6
2 1 1 2 8
3 1 2 1 13
4 1 2 2 8
5 2 1 1 7
6 2 1 2 12
7 2 2 1 14
8 2 2 2 10
9 3 1 1 3
10 3 1 2 4
11 3 2 1 7
12 3 2 2 8


PS
packageVersion('dplyr')
#[1] ‘0.7.2’

关于r - 如何 group_by(everything()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45937286/

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