gpt4 book ai didi

r - 将函数从参数传递到嵌套函数

转载 作者:行者123 更新时间:2023-12-04 12:22:18 28 4
gpt4 key购买 nike

简而言之,我想运行以下最少的代码:

library(plyr)

surround = function(my.df, my.var, my.val, my.method) {
ddply(my.df, my.var, summarize, value = my.method(as.name(my.val)))
}

my.df = data.frame(group = rep(letters[1:4], times = 25),
x = rnorm(100))

surround(my.df, "group", "x", mean)

但是,这会导致错误:找不到函数“my.method”。我确实意识到这是一个范围界定问题,我应该使用 evalsubstitute 但我想不通。

最佳答案

如果您使用自定义函数而不是 summarise,它会起作用。

surround <- function(my.df, my.var, my.val, my.method) {
ddply(my.df, my.var, function(x) c(value = my.method(x[[my.val]])))
}

my.df <- data.frame(group=rep(letters[1:4], times=25),
x=rnorm(100))

surround(my.df, "group", "x", mean)

关于r - 将函数从参数传递到嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31456958/

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