r - 如何将多变量向量值函数的输出收集到数据框中?
问题描述
我有一个函数f1
,它接受一对实数(x, y)
并返回三个实数。我想x
在一个向量a
和y
一个向量中收集这个函数的所有输出b
。您能否详细说明如何执行此操作?
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 的建议)
推荐阅读
- vb.net - 在循环的不同迭代中生成相同值的随机字符串
- mongodb - Mongo db - 来自 Docker 中另一个容器的连接异常
- amazon-vpc - 使用 CDK 是否可以在创建默认子网后对其进行修改?
- python - 是否有一个 numpy 函数可以在多维数组中查找数组?
- amazon-web-services - AWS IAM 角色的条件
- macos - 如何知道我是如何在 macOS 上安装 Node 的?
- python - 如何在 Python 中实现二进制搜索到这个程序中,而不是使用输入
- latex - LaTeX IEEEtran-de:添加 URL 访问日期
- excel - 是否有通用的基准测试代码可用于确定您的 excel/vba 代码中的性能问题?
- python - 训练更快的 RCNN 时将所有张量保留在 GPU 中