Nella mia ricerca senza fine di rompere le cose, considerare:formali di funzioni come controllare modificati
gbar<-function(x,y,x,a) x+2*y-4*a
Error: repeated formal argument 'x' on line 1
R
verifiche correttamente la mia funzione definita per formali illegali.
Ma se io le cose immonde manualmente:
ffoo<-function(x,y,a) x+2*y-4*a
formals(ffoo)<-c(x=7, formals(ffoo))
allora io solo scoprire in determinate circostanze che qualcosa non è valido. ffoo(3,4,5,6)
verrà eseguito correttamente (anche se probabilmente non mi sta dando la risposta che mi aspettavo), come lo sarà ffoo(y=3,a=2)
; mentre ffoo(x=5,y=3,a=2)
genererà un errore sui nomi di argomenti ambigui.
Quindi: esiste un base-R
o un pacchetto di utilità avanzato con una funzione per eseguire il controllo di 'integrità' sullo formals
di una funzione esistente?
non riesco a trovare una funzione R, ma si può leggere la C codice in [src/main/gram.y] (https://github.com/wch/r-source/blob/cf829c12299b8571cd67e9d8aae88ac31450c73c/src/main/gram.y). Cerca la funzione 'CheckFormalArgs()' – Andrie
@RichardScriven No, ho accettato la risposta. La mia soluzione finale era di controllare i nomi effettivi in 'formals' e creare un' do.call' tra le partite. Lo posterò come "risposta-estensione" –