【发布时间】:2015-02-13 11:50:43
【问题描述】:
我正在尝试根据矩阵 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]
这仍然返回0 2 3 0 2 3 0 2 3 的alpha,而不是我想要得到的0 2 3 0 0 0 0 0 0。如何让它发挥作用?
【问题讨论】:
-
你想在
alpha的前半部分应用什么? -
为澄清而编辑。
-
鉴于
beta是使用rnorm()生成的,我认为您不能保证beta[beta > 0]将始终导致50 个元素覆盖alpha[1:50, ]。 -
@DavidArenburg:如果我理解正确,我认为这是不正确的 - 上面的代码遍历了
alpha的全部 100 个条目(对alpha[1]和 @ 做同样的事情987654337@等) -
随便
alpha[which(beta > 1)] <- beta[beta > 1]