在R

时间:2016-09-01 14:26:26

标签: arrays r function variables

我想定义一个多变量函数,然后对一个向量数组进行操作,向量元素是变量的值。并且,使用函数输出的数组替换该数组。对于2变量版本,外部(或外部+ Vectorize)工作正常。但是对于更高的尺寸,我似乎无法提出干净透明的东西。

我将使用双变量(二维)示例,但我对一个不限于此的解决方案感兴趣。

定义矢量,例如温度和时间:

temp=seq(10,50,10)
time=seq(5,10,1)

这可以用于使用expand.grid构建数组

arrayInput <- expand.grid(temp=seq(10,50,10), time=seq(5,10,1))

输出是30行乘2列的数组。现在可以定义温度和时间的函数。

func <- function(temp, time) time*exp(-1/temp) 

我想要做的是重新排列arrayInput,使其成为一个尺寸为5 X 6 X 2的数组,并使用func对此数组进行操作,以便在给定输入对的情况下为函数生成5 X 6的值数组,温度和时间。

在Mathematica中使用Apply这样的东西是直截了当的。我已经找到了一些在R中做到这一点的方法,但是它们很丑陋,不保留变量的名称等,这使得它不太清楚代码在做什么。

任何人都知道实现这个目标的好方法吗?正如我所说,如果我有5个变量的函数,我希望能够以相同的方式执行操作。

谢谢,

史蒂夫

1 个答案:

答案 0 :(得分:1)

你可以这样做:

GetBufferSetLength()

但是,我不明白为什么你需要在这里使用数组。像其他人一样使用data.frame。 R不是Matlab。