2011-12-01 11 views
5

Vorrei portare il SpecialK Poker Hand evaluator a R. Penso che questo dovrebbe essere relativamente facile usando il Rcpp package, ma non ho idea da dove cominciare.Porting di codice C++ esistente a R

Le esercitazioni esistenti sembrano concentrarsi sullo sviluppo di un nuovo codice C++ da utilizzare in R. In questo caso, I have C++ that solves a problem, e voglio utilizzare questo codice in R con problemi minimi. Se il codice fosse una funzione autonoma, potrei compilarlo e collegarlo al volo con inline, ma questo non funziona qui.

Credo che questa domanda ha 2 parti:

  1. Avrò bisogno di apportare modifiche alla sorgente C++ per renderlo compatibile con Rcpp?
  2. Come si chiama questo codice da R, dato che non è una piccola funzione autonoma Posso compilare e collegare dinamicamente usando in linea?

Sono aperto anche a utilizzare Java, Python, o le versioni Objective-C del valutatore, ma non credo che questi saranno più facili da collegare a R.

+0

Posso chiedere quale è l'intenzione U di modificare il codice da C++ a R? – Hauleth

+0

@Hauleth Vorrei chiamare il codice C++ da R. In questo caso, voglio utilizzare le funzioni statistiche di R per fare alcune ricerche di base sul poker, ma ho bisogno di un valutatore manuale. Non esistono pacchetti R per valutare le mani di poker, quindi questa sembrava l'opzione migliore. – Zach

+0

Hai un punto. – Hauleth

risposta

4

Hai guardato Rcpp che rende abbastanza indolore combinare R e C++?

Molti pacchetti lo usano per portare il codice C++ esistente su R. Puoi anche guardare le domande qui sotto il tag [rcpp]. Documentazione abbastanza ampia nel pacchetto, nel mio sito e in altri luoghi.

+0

Hi Dirk: dov'è il miglior tutorial per qualcuno nuovo di zecca per C++ che vuole portare un po 'di codice esistente? – Zach

+0

Non è facile. Per accedere al codice C++, è necessario conoscere alcuni C++. Ma abbiamo letteralmente dozzine di esempi che usano in linea in vari luoghi, potresti iniziare da quelli. E/o guardando i pacchetti CRAN "simili" esistenti da cui potresti provare a imparare (quando ti colleghi alle librerie esistenti). E naturalmente l'elenco rcpp-devel e i suoi archivi. –

+0

Grazie. Speravo che ci sarebbe stata una soluzione facile, ma sospettavo che non ci fosse. – Zach

Problemi correlati