R将数组的每个元素乘以不同的数字

时间:2018-03-21 16:30:58

标签: arrays r multiplying

我试图将数组的每个元素乘以整数(沿第一维)。棘手的是,这个整数将针对每个元素进行更改。

一个例子:

test[1,,] * vec[1]
test[2,,] * vec[2]
test[3,,] * vec[3]

我想要的结果是一个具有相同尺寸(3,5,7)和第一维的数组:

Result <- array(dim = c(3,5,7))
Result[1,,] <- 1
Result[1,,] <- 20
Result[1,,] <- 300

这意味着

 "TypeError: Cannot read property 'status' of undefined"

我认为我与外部或者应用等不同的功能非常接近,但我认为有一种更简单的方法,因为我有很多要处理的数据。现在,我找到了外部函数,我应该选择类似结果的对角线。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

怎么样

test*replicate(7, replicate(5, vec))

答案 1 :(得分:2)

slice.index可能会对您有所帮助

Result <- test * vec[slice.index(test, 1)]

答案 2 :(得分:1)

使用像这样的申请有什么问题?

sapply(1:length(vec), function(i) test[i,,]<<- test[i,,]*vec[i])