是否可以在函数中对多个变量使用 group_by ?

发布于 2025-01-10 18:04:39 字数 318 浏览 0 评论 0原文

我创建了一个聚合数据集中数值的函数,并首先使用 group_by() 函数对数据进行分组。下面是我编写的代码的示例。有没有一种方法可以 group_by() 多个变量,而无需为该函数创建另一个输入?

agg <- 函数(数据,组){ aggdata <- 数据 %>% group_by({{group}}) %>% select_if(function(col) !is.numeric(col) & !is.integer(col)) %>% summarise_if(is.numeric, sum, na.rm = TRUE) return(aggdata)

I created a function that aggregates the numeric values in a dataset, and I use a group_by() function to group the data first. Below is an example of what the code I wrote looks like. Is there a way I can group_by() more than one variable without having to create another input for the function?

agg <- function(data, group){ aggdata <- data %>% group_by({{group}}) %>% select_if(function(col) !is.numeric(col) & !is.integer(col)) %>% summarise_if(is.numeric, sum, na.rm = TRUE) return(aggdata)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦一生花开无言 2025-01-17 18:04:39

您的代码(至少)有一个放错位置的大括号,如果没有可重现的示例和所需的结果,就很难看到您想要完成的任务。

可以将变量名称向量传递给group_by()。例如,以下代码产生与 mtcars %>% group_by(cyl, gear) 相同的结果:

my_groups <- c("cyl", "gear")
mtcars %>% group_by(!!!syms(my_groups))

也许您可以在函数定义中使用此语法。

Your code has (at least) a misplaced curly brace, and it's a bit difficult to see what you're trying to accomplish without a reproducible example and desired result.

It is possible to pass a vector of variable names to group_by(). For example, the following produces the same result as mtcars %>% group_by(cyl, gear):

my_groups <- c("cyl", "gear")
mtcars %>% group_by(!!!syms(my_groups))

Maybe you could use this syntax within your function definition.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文