2012-04-20 19 views
5

Próbuję zmodyfikować funkcję stats::kmeans, aby zwrócić liczbę iteracji (see here). Kiedy kopiuję źródło do mojego własnego pliku, modyfikuję funkcję i uruchamiam ją, pojawia się błąd dotyczący obiektu C_kmns podczas próby wykonania funkcji do_one. Ten obiekt jest przekazywany do wywołania .Fortran i nie jest tworzony w dowolnym miejscu w funkcji kmeans. Skąd pochodzi ten obiekt?nie można znaleźć obiektu C_kmns po przekazaniu do .Fortran()

Błąd Dostaję jest

Error in do_one(nmeth) : object 'C_kmns' not found 

Oto fragment kodu z „naruszającego” rozmowy.

do_one <- function(nmeth) { 
     Z <- 
       switch(nmeth, 
         { # 1 
          Z <- .Fortran(C_kmns, as.double(x), as.integer(m), 
            as.integer(ncol(x)), 
            ... 

Odpowiedz

8

C_kmns to obiekt nieeksportowany w przestrzeni nazw statystyk. Możesz rozwiązać problem, mówiąc R, gdzie go znaleźć ze statystykami ::: C_kmns. w przykładzie:

Z <- .Fortran(stats:::C_kmns, as.double(x), as.integer(m), 
            as.integer(ncol(x)), 
            ... 

Na ogół, gdy pojawi się błąd obiekt nie został znaleziony, można szukać go z getAnywhere("C_kmns")

Powiązane problemy