-2
Учитывая евклидово расстояния функции:R векторизация - вычитание векторов
eDistance <- function(q,m){
apply(m,1,function(x){
sqrt(sum((q-x)^2))
})
}
И следующая матрица:
t = cbind(c(3,4,1,6,3),c(1,9,1,2,1))
Я хочу найти векторизованный способ сделать следующее:
r = rep(NA,nrow(t))
for (i in 1:nrow(t)){
tmp = eDistance(t[i,],t)
r[i] = sum(tmp)
}
Моей главной задачей является время работы.
Thank you.
-1 с двумя основными проблемами (IMHO), являющимися 1) желаемым выходом. 2) код сломан (перейдите к 'eDistance (c [i,], c)') –
Вы никогда не определяете c. Вы также перезаписываете t –