一个基本的问题:我为此道歉。在 RI 中想要生成一个x
具有 2 个索引的数据结构,让我们说i
and j
, st (伪代码)
for (i in 1:10){
for (j in 1:20){
x[i,j] <- c(i+j,j-i^2)
}
}
即 的每个元素x
都是具有 2 个分量的向量。此外,我想搜索x
以找出哪一对i,j
给出的最大值j-i^2
;这应该在上面的 double 中完成for
。你能给我一些提示吗?我谢谢大家。
一个基本的问题:我为此道歉。在 RI 中想要生成一个x
具有 2 个索引的数据结构,让我们说i
and j
, st (伪代码)
for (i in 1:10){
for (j in 1:20){
x[i,j] <- c(i+j,j-i^2)
}
}
即 的每个元素x
都是具有 2 个分量的向量。此外,我想搜索x
以找出哪一对i,j
给出的最大值j-i^2
;这应该在上面的 double 中完成for
。你能给我一些提示吗?我谢谢大家。
您可以使用outer
. 从您的问题中不清楚您是考虑将i
和j
作为绝对值还是某种索引向量。我假设它们是向量的索引,x
:
set.seed(1)
x <- runif(20)
matm <- outer( x[1:20] , (x[1:10])^2 , `-` )
matp <- outer( x[1:10] , x[1:20] , `+` )
head( cbind( i_plus_j = c(matm) , j_minus_i_sq = c(matp) ) )
# i_plus_j j_minus_i_sq
#[1,] 0.1950138 0.5310173
#[2,] 0.3016290 0.6376326
#[3,] 0.5023585 0.8383620
#[4,] 0.8377129 1.1737165
#[5,] 0.1311871 0.4671906
#[6,] 0.8278948 1.1638983
which( matm == max( matm ) , arr.ind = TRUE )
# row col
#[1,] 18 10