【发布时间】:2021-12-11 02:56:20
【问题描述】:
我有一个小问题需要帮助。我定义了一个基于 2 个向量计算多个向量的函数。一般的想法是结果是相互关联的(这就是为什么我只有一个函数),并且计算意味着聚合(结果的元素不仅取决于参数的相同元素,还取决于其他元素)。
我的问题实际上很简单:我想在数据帧上调用我的函数,以便按组计算结果,并将其存储到多个变量中。
基本上,这是我想做的:
myFunction <- function(x, y){
list(a = x + y,
b = cumsum(x))
}
data <- data.frame(var1 = c(1,2,4,7,2),
var2 = c(2,6,2,4,6),
groups = c("a", "a", "b", "b", "b"))
data %>% group_by(groups) %>% mutate(new1 = myFunction(var1, var2)[[1]],
new2 = myFunction(var1, var2)[[2]])
但是,与示例不同,我只想调用我的函数一次。
有没有人有这样做的想法?非常感谢!
弗朗索瓦
【问题讨论】: