gpt4 book ai didi

r - 如何将多变量向量值函数的输出收集到数据框中?

转载 作者:行者123 更新时间:2023-12-01 23:36:35 26 4
gpt4 key购买 nike

我有一个函数f1,它接受一对实数(x, y)并返回三个实数。我想收集向量 a 中的所有 x 和向量 b 中的 y 该函数的所有输出>。您能详细说明一下如何操作吗?

f1 <- function(x, y){
return (c(x+y, x-y, x*y))
}

a <- seq(0, pi, 0.1)
b <- seq(0, 2 * pi, 0.1)

更新:我的意思是对于所有对 $(x, y)\in a\times b$。

最佳答案

这是一个data.table选项

setDT(expand.grid(a, b))[, fval := do.call(Vectorize(f1, SIMPLIFY = FALSE), unname(.SD))][]

哪里expand.grid + do.call + Vectorize被使用,给予

      Var1 Var2              fval
1: 0.0 0.0 0,0,0
2: 0.1 0.0 0.1,0.1,0.0
3: 0.2 0.0 0.2,0.2,0.0
4: 0.3 0.0 0.3,0.3,0.0
5: 0.4 0.0 0.4,0.4,0.0
---
2012: 2.7 6.2 8.90,-3.50,16.74
2013: 2.8 6.2 9.00,-3.40,17.36
2014: 2.9 6.2 9.10,-3.30,17.98
2015: 3.0 6.2 9.2,-3.2,18.6
2016: 3.1 6.2 9.30,-3.10,19.22

更紧凑的一个是使用 CJ(a,b)而不是setDT(expand.grid(a, b)) (感谢@akrun的建议)

关于r - 如何将多变量向量值函数的输出收集到数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65515169/

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