Ho giocato con l'installazione di un pacchetto R che mira a utilizzare Rcpp in RStudio, ma sto cercando di far funzionare correttamente gli elementi con gli attributi Rcpp.Creazione di pacchetti con Rcpp, Attributi non gestiti correttamente
La mia comprensione di come funziona è piuttosto tenue, ma la mia comprensione è la seguente:
- Nella sorgente C file ++, è possibile aggiungere Rcpp attributi, per esempio il tag
// [[Rcpp::export]]
segna una funzione di C++ per l'esportazione , rendendolo disponibile per R. - Quando si crea il pacchetto,
Rcpp
quindi genera il codice C++ appropriato nel fileRcppExports.cpp
e le funzioni wrapper nel file di origine RRcppExports.R
.
Questo non sembra funzionare correttamente (come mi aspetto) quando costruisco il mio pacchetto. Roxygen non sta giocando bene con questo quando si genera il file NAMESPACE (quindi ho disabilitato quello). Il tag // [[Rcpp::export]]
sembra indicare solo la funzione per l'esportazione in R, piuttosto che contrassegnare una funzione per l'esportazione nello spazio dei nomi del pacchetto.
Ancora più importante, il tag Rcpp Attribute // [[Rcpp::depends()]]
non viene gestito correttamente. Se copio il codice here in un nuovo file di origine e ricostruisco il pacchetto, gcc
genera errori nel file RcppExports.cpp
dicendo che l'identificatore BigMatrix
non è dichiarato che indica che l'attributo // [[Rcpp::depends(bigmemory)]]
non viene gestito correttamente.
Poiché più cose non funzionano come mi aspetterei, cosa mi manca nella mia comprensione dei tag Rcpp Attribute?
Si potrebbe semplicemente scrivere la propria interfaccia di funzione a mano, piuttosto che fare affidamento su Attributi Rcpp e sul suo helper 'compileAttributes()'. Dopotutto, qui c'è un caso speciale (== bisogno di un'intestazione speciale). –