我正在尝试根据矩阵beta上的标准来最佳地更改矩阵alpha中的值:
alpha <- matrix(0,9)
beta <- matrix(1:3,3)
alpha[beta>1] <- beta[beta>1]
这给beta
中1 2 3
和alpha
的0 2 3 0 2 3 0 2 3
。
尽管我不确定上述方法是否是最有效的方法,但实际上我也只想更改alpha矩阵第一部分的值,即前三个条目(上面,因为beta是第三个元素的三分之一)。 alpha的大小,alpha中的条目mod 3相同)。我尝试了以下方法:
alpha <- matrix(0,9)
beta <- matrix(1:3,3)
alpha[1:3 & beta>1] <- beta[beta>1]
这仍然返回alpha
的0 2 3 0 2 3 0 2 3
,rhather比0 2 3 0 0 0 0 0 0
这是我想得。我该如何运作?
我假设您要处理矩阵的前半部分,并仅替换符合特定条件的值。就你而言> 0
。
set.seed(357)
alpha <- matrix(0,10)
beta <- matrix(rnorm(5),5)
beta
[,1]
[1,] -1.2411173
[2,] -0.5832050
[3,] 0.3947471
[4,] 1.5042111
[5,] 0.7667997
仅应应用最后三行(到的第3、4和5行alpha
)。
rownames(alpha) <- 1:nrow(alpha)
alpha[rownames(alpha) %in% 1:nrow(beta), ][beta > 0] <- beta[beta > 0]
alpha
[,1]
1 0.0000000
2 0.0000000
3 0.3947471
4 1.5042111
5 0.7667997
6 0.0000000
7 0.0000000
8 0.0000000
9 0.0000000
10 0.0000000
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句