Sto cercando di creare un pacchetto in R in cui ho creato molte nuove classi personalizzate. Ogni classe è in un file diverso. Le classi ereditano da una classe genitore ed ereditano in altre classi.Collegamento di più file durante la creazione di un pacchetto in R
Durante l'esecuzione i miei codici io chiamo ognuno di loro come questo
source("package/father.R")
source("package/son.R")
source("package/grandson.R")
Definizione per alcuni dei metodi necessari dalla Classe nipote in definito in classe Son. Io uso package.skeleton() per chiamare ciascuno di loro e creare un pacchetto e sembra funzionare bene. Ma quando si esegue R CMD Check (e quando si prova ad installare in R), si genera un errore perché la funzione tenta di chiamare i file in ordine alfabetico e quindi il nipote del file .R viene chiamato prima di son.R e mostra e errore dicendo che i metodi non sono stati definiti. Se cambio i nomi in zgrandson.R, R ha chiamato l'ultimo file e tutto sembra funzionare correttamente, ma evidentemente non è una soluzione al problema.
Ho letto tutorial per la creazione di pacchetti, ma tutti sembrano trattare casi semplici in cui non vi è alcuna ereditarietà/chiamata di altri file in R. Spero di essere stato chiaro.
bel lavoro su un primo post. –
"Se cambio i nomi in zgrandson.R, R ha chiamato l'ultimo file e tutto sembra funzionare correttamente, ma evidentemente non è una soluzione per il problema." Perché? Questa è esattamente la soluzione che uso e anche molte altre (inizia i primi script con qualcosa come "00Classes.R'). –
Sta funzionando bene, ma sembrava un modo così brutto/hackish per risolvere il problema: D. Grazie per avermi fatto sapere che anche altre persone stanno usando questa soluzione alternativa. Anche se mi chiedo se il problema è con la mia stessa struttura del codice, poiché nessuno degli script dei buoni programmatori che ho passato sembra chiamare altri file. –