我对编程和 R 非常陌生。我试图找到我的问题的答案,但问题的一部分是我不知道要搜索什么。

我正在尝试为矩阵的每一行重复计算(统计距离)。这是我到目前为止所拥有的:

pollution1 <-as.matrix(pollution[,5:6])
ss <- var(pollution1)
ssinv <- solve(ss)
xbar <- colMeans(pollution1)
t(pollution1[1,]-xbar)%*%ssinv%*%(pollution1[1,]-xbar)

这只会让我获得第一个统计距离,但我不想用不同的矩阵行重新输入这条线来获得所有这些距离。

根据我的阅读,我可能需要一个循环或使用 apply() ,但我自己没有成功。对此的任何帮助以及有关如何搜索帮助的建议,因此我不需要发布,将不胜感激。
谢谢你。

最佳答案

只使用 apply 怎么样

apply(pollution1, 1, function(i) t(i-xbar) %*% ssinv %*% (i-xbar))

此外,如果您使示例可重现,这将很有帮助,例如:
pollution1 = matrix(rnorm(100), ncol=2)
ss = var(pollution1)
ssinv = solve(ss)
xbar = colMeans(pollution1)
t(pollution1[1,]-xbar) %*% ssinv %*% (pollution1[1,]-xbar)

关于r - 如何对 R 中矩阵的每一行重复计算?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13663580/

10-12 17:52