如何计算5个变量的最小平方差和
How to calculate the smallest sum of squared differences among 5 variables
我想在 Gnu R 中计算 w
、x
、y
、[= 之间的最小平方差和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()来获取上面获取的列的名称
我想在 Gnu R 中计算 w
、x
、y
、[= 之间的最小平方差和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()来获取上面获取的列的名称