如何计算5个变量的最小平方差和

How to calculate the smallest sum of squared differences among 5 variables

我想在 Gnu R 中计算 wxy、[= 之间的最小平方差和14=] 和 a 并选择这四个变量中哪个最适合 a,但我不知道如何以最优雅的方式做到这一点。

考虑以下随机数据:

set.seed(5840)
a <- runif(100, -1.5, 1.5)
w <- pnorm(rnorm(100))
x <- rnorm(100)
y <- rnorm(100)
z <- dnorm(rnorm(100))

有人知道怎么做吗?

您可以使用此代码:

sapply(data.frame(w, x, y, z), function(v) sum((a - v) ^ 2))
#        w         x         y         z 
# 95.39201 158.81291 186.37518  75.86112 

获得z.

的最小平方差和

我知道问题已得到解答,但作为新成员,我会 post 通过学习 Whosebug 的技巧来回复。 所以就这样吧。请多多包涵。

实际上只是基于以上两个答案

sort(apply(cbind(w, x, y, z), 2,function(v) sum((a - v) ^ 2)))[1]

按照尼古拉的方法,

    sort(apply(cbind(w,x,y,z),2, function(xx) sum((lm(a ~ xx)$residuals)^2)))[1]

还有一个编辑: 我们可以使用names()来获取上面获取的列的名称