Questa è la mia prima domanda di stackoverflow, quindi per favore sii gentile, gente!Problemi nella creazione del pacchetto R con gli strumenti di sviluppo quando usa RcppArmadillo
Mi è piaciuto molto il mio recente potere di creare pacchetti R usando devtools. Tuttavia, non appena provo a creare un pacchetto che utilizza RcppArmadillo, il mio flusso di lavoro di eseguire devtools :: document(), devtools :: check() e devtools :: build() non funziona più.
Ad esempio, ho una versione di prova (si spera piuttosto minima + completa) del pacchetto che sto cercando di sviluppare qui: https://github.com/suztolwinskiward/fooR/. fooR contiene solo una funzione, che è un'implementazione C++ della funzione rdist.earth dal pacchetto fields.
corso devtools :: documento ("foor") sputa fuori un sacco di messaggi (alcuni alludono alla "riferimenti non definiti" per le variabili che non vivono in mia fonte co che non sono interpretabili a me, e poi non riesce:
collect2: ld returned 1 exit status
no DLL was created
ERROR: compilation failed for package 'fooR'
* removing 'C:/Users/I53794/AppData/Local/Temp/RtmpWgC8nD/devtools_install_1ea473123086/fooR'
Error: Command failed (1)
Un altra parte, quando ho fonte la funzione C++ che dipende RcppArmadillo, sembra che vada tutto bene:
> Rcpp::sourceCpp('./src/rdist_earth_cpp.cpp')
> data('miami')
> data('new_orleans','katrina_path')
> rdist_earth_cpp(katrina_path,new_orleans)
[,1]
[1,] 1042.36073
[2,] 998.96793
[3,] 957.69315
[4,] 917.91486
[5,] 868.07791
[6,] 805.73485
[7,] 763.01476
[8,] 726.10133
[9,] 692.14482
[10,] 670.15133
[11,] 662.23353
[12,] 625.55592
[13,] 601.08682
[14,] 579.73940
[15,] 560.32660
[16,] 539.14192
[17,] 510.15438
[18,] 481.40037
[19,] 442.52322
[20,] 391.96619
[21,] 331.66378
[22,] 271.79088
[23,] 201.24749
[24,] 128.12647
[25,] 56.99198
[26,] 45.80297
[27,] 32.96609
[28,] 81.71237
[29,] 189.31050
[30,] 296.92104
[31,] 406.12593
[32,] 516.08458
[33,] 654.81113
[34,] 808.21670
Questo mi porta a pensare che ci sia qualcosa di sbagliato nel modo in cui sto provando usare RcppArmadillo nel mio pacchetto, ma non sono stato in grado di fig uro fuori cosa. Qualche consiglio molto apprezzato!
P.S. Sono sorpreso che non ci sia nessun tag RcppArmadillo qui ...
... e sarebbe creato per te se usassi strumenti come 'RcppArmadillo.package.skeleton()' che abbiamo creato ** precisamente ** per aiutare i novizi nella creazione del pacchetto. –
Grazie a tutti e due. Imparerò sicuramente RcppArmadillo.packge.skeleton() - grazie per averlo sviluppato Dirk et al. Di solito devtools :: document() costruisce lo spazio dei nomi per me, quindi non so perché quella strada non sembra funzionare non appena includo RcppArmadillo. –