pakiet proxy w R, nie może go uruchomić

Chcę zaimplementować ważoną błędem funkcję odległości euklidesowej w R (podobną, ale nie całkiem taką samą jak Kumar i Patel. 2005. Rutcor Research Report. RRR 12-2005). Wiem już, że chcę do tego użyć pr_DB w proxy. Tutaj napotykam problemy. Pierwszą rzeczą, którą zawsze robię patrząc na nowy pakiet, jest wycinanie i wklejanie przykładów do R, aby sprawdzić, czy robią to, czego oczekuję. Tak się nie stało w tym przypadku. Zacząłem od prostego dołączonego przykładu, na przykład:

mydist <- function(x,y) x * y
pr_DB$set_entry(FUN = mydist, names = c("test", "mydist"))

Dobrze, do tej pory, tak dobrze. Myślę, że jeśli ma działać tak jak normalna funkcja typu „dist”, wrzucę bardzo prosty fragment danych.

>toydat
        x           y
a -0.12817993 -1.03238513
b  1.56200731  0.93826937
c -1.24051847 -1.31005852
d -1.12892553 -1.57133401
e -1.10098308  0.06577006

Oczywiście mały zestaw zabawek. SOOOOOO, wypróbowuję następujące rzeczy:

toydist <- dist(toydat,method="mydist")

Otrzymuję następujący komunikat:

Error in do.call(".External", c(list(CFUN, x, y, pairwise, if (!is.function(method)) get(method) else method),  : 
not a scalar return value

Na przeczucie wypróbowałem:

toydist <- dist(toydat,method="Euclidean")
toydist <- dist(toydat,method="Manhatten")

i inni. Wszystkie działają zgodnie z oczekiwaniami. Zakładam, że jest coś specjalnego, co należy zrobić z podstawową formułą, aby działał w odpowiedni sposób do obliczania macierzy odległości. Chcę obliczyć sqrt ((xi - xj)2) + (yi - yj)2) + ... (ni - nj)2) ÷ sqrt ((σxi2 + σxj2) + (σyi2 + σyj2) + ... (σni2 + σnj2)), w każdej kombinacji par dla mojego zestawu danych.

Zdaję sobie sprawę, że mogę to zrobić za pomocą arkusza kalkulacyjnego dla pojedynczego zestawu danych, ale chcę zrobić ładowanie grupowe, co wiem, jak to zrobić w R. Nie jest to praktyczne w przypadku arkusza kalkulacyjnego.

questionAnswers(1)

yourAnswerToTheQuestion