具有多个条件的R子集

药物

我正在尝试根据矩阵beta上的标准来最佳地更改矩阵alpha中的值:

alpha <- matrix(0,9)
beta <- matrix(1:3,3)
alpha[beta>1] <- beta[beta>1]

这给beta1 2 3alpha0 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]

这仍然返回alpha0 2 3 0 2 3 0 2 3,rhather比0 2 3 0 0 0 0 0 0这是我想得。我该如何运作?

罗曼·卢斯特里克(Roman Lustrik)

我假设您要处理矩阵的前半部分,并仅替换符合特定条件的值。就你而言> 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章