Introducerea CPP4R: o interfață C ++ pentru interfața R a R

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(social4i size = „mic” align = „align-left”)

->

(Acest articol a fost publicat pentru prima dată pe pacha.dev/blogși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Dacă această postare vă este utilă, vă cer o donație minimă pentru a -mi cumpăra o cafea. Acesta va fi folosit pentru a continua eforturile mele open source. Explicația completă este aici: un mesaj personal de la un contribuabil open source.

Puteți să -mi trimiteți întrebări pentru blog folosind acest formular și să vă abonați pentru a primi un e -mail atunci când există o nouă postare.

CPP4R vă ajută să interacționați cu obiecte R folosind codul C ++. Este o furculiță a pachetului CPP11 cu sintaxă identică și obiective similare.

  • Cod: https://github.com/pachadotdev/cpp4r.
  • Documentație: https://cpp4r.org/.

CPP4R poate fi utilizat ca înlocuitor pentru CPP11 în pachetele existente sau noi. Gândiți -vă la CPP11 și CPP4R ca MySQL și MariaDB: sunt aproape identice, dar CPP4R are câteva caracteristici suplimentare.

După ce am discutat despre câteva cereri de tracțiune cu Hadley Wickham de la POSIT, s -a menționat că ar trebui să -mi creez propria furculiță pentru a adăuga următoarele caracteristici:

  • Convertiți hărțile C ++ comandate și neordonate în listele R.
  • Suport Roxygen pe partea C ++.
  • Permite dimnames atribute cu matrice pe partea C ++.
  • Susțineți nullable external_ptr<>.
  • Utilizați valorile adăugate la un vector cu push_back() imediat.
  • Sprijină trecerea bidirecțională a numerelor/vectorilor complexi.
  • Oferiți flexibilitate cu tipurile de date (de exemplu, CPP4R as_integers() şi as_doubles() Acceptați intrări logice în timp ce CPP11 nu).
  • Câteva optimizări interne pentru o viteză mai bună (de exemplu, https://github.com/r-lib/cpp11/pull/463 și https://github.com/r-lib/cpp11/pull/430).

Utilizarea CPP4R într -un pachet

Pentru a adăuga CPP4R la un pachet existent, instalați -l mai întâi:

remotes::install_github("pachadotdev/cpp4r")

# or
pak::pkg_install("pachadotdev/cpp4r")

Apoi puneți fișierele C ++ în src/ director și adăugați următoarele la fișierul dvs. de descriere:

LinkingTo: cpp4r

Apoi decorați funcțiile C ++ pe care doriți să le expuneți la r ((cpp4r::register)).

CPP4R este o bibliotecă numai cu antet, fără dependențe dure și nu folosește o bibliotecă partajată, astfel încât este simplu și fiabil de utilizat în pachete, fără teamă de neconcordanții în timp de compilare și de rulare.

În mod alternativ, puteți furnizează versiunea curentă instalată a anteturilor CPP4R în pachetul dvs. cu cpp4r::vendor(). Acest lucru asigură că anteturile vor rămâne neschimbate până când le actualizați în mod explicit.

Noțiuni de bază

Consultați documentația pentru a începe utilizarea CPP4R în scripturile dvs., în special dacă sunteți nou la programarea C ++.

Obținerea ajutorului

Vă rugăm să deschideți o problemă sau să -mi trimiteți un e -mail. Voi face tot posibilul să răspund înainte de 48 de ore.

Contribuind

Contribuțiile sunt binevenite! Vă rugăm să consultați vintetia internă pentru detalii despre alegerile de design și stilul de codare.

Codul de conduită

Vă rugăm să rețineți că proiectul CPP4R este lansat cu un cod de conduită contribuabil. Contribuind la acest proiect, sunteți de acord să respectați termenii săi.

La Lasă un comentariu Pentru autor, vă rugăm să urmați linkul și să comentați pe blogul lor: pacha.dev/blog.

Oferte R-Bloggers.com Actualizări zilnice prin e-mail Despre știri și tutoriale despre învățarea R și multe alte subiecte. Faceți clic aici dacă doriți să postați sau să găsiți o lucrare R/Data-Science.


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Continuați să citiți: Introducerea CPP4R: o interfață C ++ pentru interfața R’s C

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.