我的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)
如果我将问题表述为求和,那么这种计算会更容易。我怎么在r?类似的东西:
sum((x[i]-xm)^2) for i=1 to i=6?
x是一个数据框。
答案 0 :(得分: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
答案 1 :(得分:3)
如果没有阅读本主题中的所有回复,就可以在R中进行总结。
根据需要修改以下两行以容纳矩阵或其他类型的向量:
i <- 0:5; sum(i^2)
访问矢量/数组中的位置时,使用i
作为索引。
请注意,i
可以是任何向量。