Этот вопрос появился сегодня в списке рассылки manulatrr.
http://groups.google.com/group/manipulatr/browse_thread/thread/fbab76945f7cba3f
Я перефразирую.
Учитывая матрицу расстояний (вычисленную с помощью dist
), примените функцию к строкам матрицы расстояния.
код:
library(plyr)
N <- 100
a <- data.frame(b=1:N,c=runif(N))
d <- dist(a,diag=T,upper=T)
sumd <- adply(as.matrix(d),1,sum)
Проблема заключается в том, что для применения функции по строкам вы должны хранить всю матрицу (а не только нижнюю треугольную часть, поэтому она использует слишком много памяти для больших матриц). В моем компьютере для матриц размерностей ~ 10000.
Любые идеи?