gpt4 book ai didi

r - 在我自己的函数中使用 summarise_ 和 group_by_

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

我想创建一个简单的函数,它将使用 summarise_group_by_ 函数。我知道非标准评估存在问题,但我可以修复它。

library(dplyr)
test_function <- function(.data, ..., variable){
dots <- quote(mean(substitute(variable)))
group_by_(.data,.dots = lazyeval::lazy_dots(...)) %>%
summarise_(.dots = dots)
}

但是当我尝试这个时:

test_function(ggplot2::diamonds, cut, clarity, variable = price)

它不起作用。

谢谢

最佳答案

你的问题是你的quote()。引用正在转义 substitute(),因此它不会按照您希望的方式运行。如果您使用 bquote() 来代替,您可以计算替代值并将结果插入到表达式中以获得您想要的结果

test_function <- function(.data, ..., variable){
dots <- bquote(mean(.(substitute(variable))))
group_by_(.data,.dots = lazyeval::lazy_dots(...)) %>%
summarise_(.dots = dots)
}

test_function(diamonds, cut, clarity, variable = price)
# Source: local data frame [40 x 3]
# Groups: cut
#
# cut clarity mean(price)
# 1 Fair I1 3703.533
# 2 Fair SI2 5173.916
# 3 Fair SI1 4208.279
# 4 Fair VS2 4174.724
# 5 Fair VS1 4165.141

关于r - 在我自己的函数中使用 summarise_ 和 group_by_,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31752889/

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