有没有办法使用R中的表达式/函数初始化数组

时间:2015-07-02 07:15:15

标签: arrays r function initialization expression

是否有一种简单的方法可以使用基于数组中每个单元格索引的函数初始化数组?

例如,如果我想创建一个值等于i + j + k的数组,那么(例如):

> A[1,2,3]
   6 
> A[4,8,9]
   21

我喜欢以下内容:

A <- array( i+j+k , dim=c(10,10,10) , dimnames=list(i,j,k) )

我是否首先需要创建一个我想要的大小的数组,然后将一个函数应用于该数组(即两个阶段的过程)?或者有没有办法在创建矩阵的同时初始化所有值?

2 个答案:

答案 0 :(得分:3)

嵌套// math.js module.exports = function (func){ return require('./'+func); } //use it like this // app.js var math = require('./math'); console.log('add = ' + math('add')(5,5)); console.log('subtract =' + math('subtract')(5,5)); 来电似乎可以解决问题(此处最多可达3次):

outer

或复制您的示例:

 outer(outer(1:3,1:3,"+"),1:3,"+")

答案 1 :(得分:1)

另一种选择是使用expand.grid

v1 <- 1:10
l <- length(v1)
n <- 3
A <- array(rowSums(expand.grid(rep(list(v1), n))), dim= rep(l, n))
A[1, 2, 3]
#[1] 6
A[4, 8, 9]
#[1] 21