Próbuję utworzyć pakiet w R, w którym utworzyłem wiele nowych niestandardowych klas. Każda klasa znajduje się w innym pliku. Klasy dziedziczą z klasy nadrzędnej i dziedziczą do innych klas.Łączenie wielu plików podczas tworzenia pakietu w R
Podczas pracy moje kody Wzywam każdego z nich jak to
source("package/father.R")
source("package/son.R")
source("package/grandson.R")
Definicja Niektóre z metod wymaganych przez klasę wnuka zdefiniowane w klasie syna. Używam package.skeleton() do wywoływania każdego z nich i tworzenia pakietu i wygląda na to, że działa dobrze. Ale przy uruchomieniu R CMD Check (i przy próbie instalacji do R), generuje błąd, ponieważ funkcja próbuje wywołać pliki w kolejności alfabetycznej, tak więc plik grandson.R jest wywoływany przed son.R i pokazuje i mówi błąd że metody nie zostały zdefiniowane. Jeśli zmienię nazwy na zgrandson.R, R nazwał ten plik jako ostatni i wszystko wydaje się działać dobrze, ale nie jest to oczywiście rozwiązanie problemu.
Czytałem tutoriale do tworzenia pakietów, ale wszystkie wydają się radzić sobie z prostymi przypadkami, w których nie ma dziedziczenia/wywoływania innych plików w R. Mam nadzieję, że jasno się wyraziłem.
miła praca przy pierwszym poście. –
"Jeśli zmienię nazwy na zgrandson.R, R nazwał ten plik jako ostatni, a wszystko wydaje się działać dobrze, ale to najwyraźniej nie jest rozwiązaniem problemu." Czemu? To jest właśnie to rozwiązanie, którego używam, i wiele innych (rozpocznij pierwsze skrypty z czymś w rodzaju '00klasses.R'). –
To działa dobrze, ale wyglądało na taki brzydki/hackish sposób rozwiązania problemu: D. Dziękuję za poinformowanie mnie, że inni ludzie również używają tego rozwiązania. Chociaż zastanawiam się, czy problem dotyczy samej mojej struktury kodu, ponieważ żaden ze skryptów dobrych programistów, przez które przeszedłem, nie wydaje się wywoływać innych plików. –