如何计算r中的求和

eco*_*orr 6 r

我的R代码:

((x[1]-xm)^2)+((x[2]-xm)^2)+((x[3]-xm)^2)+((x[4]-xm)^2)+((x[5]-xm)^2)+((x[6]-xm)^2)
Run Code Online (Sandbox Code Playgroud)

如果我将问题表述为求和,则这种计算会更容易.我怎么在r?就像是:

sum((x[i]-xm)^2) for i=1 to i=6?
Run Code Online (Sandbox Code Playgroud)

x是数据帧.

小智 11

无需阅读此线程中的所有响应,在 R 中有一种非常简单的求和方法。

根据需要修改以下两行以容纳矩阵或其他类型的向量:

i <- 0:5; sum(i^2)
Run Code Online (Sandbox Code Playgroud)

使用i访问您的矢量/阵列中的位置时,你的指数。

请注意,i可以是任何向量。


Tec*_*e01 10

你需要使用sum(),例如下面:

IndexStart <- 1
x <- seq(IndexStart, 6, 1)
xm <- 1

result1 <- ((x[1]-xm)^2)+((x[2]-xm)^2)+((x[3]-xm)^2)+((x[4]-xm)^2)+((x[5]-xm)^2)+((x[6]-xm)^2)
print(result1)
# [1] 55

result2 <- sum((x-xm)^2) # <- Solution
print(result2)
# [1] 55
Run Code Online (Sandbox Code Playgroud)