Uso la R 3.0.2 su Ubuntu 14. Eseguo alcuni calcoli pesanti nel mio codice e ho provato il pacchetto "compiler" conUtilizzo del pacchetto di compilazione e soppressione "Nessuna associazione visibile per la variabile globale"
compilePKGS(enable=TRUE)
enableJIT(3)
E sembra velocizzare il mio codice. Molto bella!
Ma ogni volta il mio pacchetto permette al "compilatore", ho un sacco di note come
Note: no visible binding for global variable '.Data'
o qualcosa di simile con i miei oggetti S4 (la sua "obj risultato @" nel codice):
Note: no visible binding for global variable 'result'
che è, ad esempio, parte di un oggetto S4 creato da sé. L'aggiunta di setCompilerOptions("suppressAll", TRUE)
o setCompilerOptions("suppressUndefined", TRUE)
non ha aiutato. Quando disattivo completamente il pacchetto del compilatore, non appaiono affatto note, quindi questo potrebbe essere un problema con la mia comprensione del pacchetto compilatore/jit?
Cosa posso fare per sopprimere queste note?
Edit:
require(compiler)
compilePKGS(enable=TRUE)
enableJIT(3)
setClass(Class = "testobject",
slots = c(data = "numeric",
test = "character",
split = "numeric",
name = "character"
)
)
a <- new("testobject", data=c(1,2,3,4), test="TEST", split=5, name="NAME")
for(i in [email protected]){
print(i)
}
Semplice esempio produce
Note: no visible binding for global variable '.Data'
Note: no visible binding for global variable '.Data'
direttamente dopo la definizione della classe chiamata
È possibile nascondere tali note se si definisce '.Data' (ad esempio, aggiungere' .Data <- NULL' all'inizio dello script). Non sono del tutto sicuro del motivo per cui è stato pubblicato qui, quindi forse qualcun altro può confermare che questa è una cosa salvifica da fare. –
Sì, è vero, ho trovato una risposta simile in [link] (http://stackoverflow.com/a/23476834/2720455), ma la cosa divertente è che questi messaggi non compaiono quando disattivo il compilatore o il jit (3). La soluzione alternativa nel thread collegato crea variabili nell'ambiente. Non penso che sia appropriato per un pacchetto? Questo si sente associato al compilatore o mi sto perdendo qualcosa? Grazie per l'aiuto! :) – Marc
@Marc Hai mai trovato una soluzione? –