Język R (rrun, rcppconv)

MetodaDeklaracja metodyPrzykład wywołaniaOpis działania
Domyślne środowisko RRInside REREAby wygodnie korzystać z R, w głównym pliku projektu (np. main.cpp) należy zadeklrować zmienną RE poza programem głównym. Zmienna RE będzie dostępna we wszystkich plikach projektu. Sposób deklaracji:

Rinside RE;

int main()
{
// kod programu
}
Teksttypedef Rcpp::String RTextRText tTyp tekst w Rcpp. Zmienna tego typu może być przekazana do środowiska R.
Datatypedef Rcpp::Date RDateRDate dTyp data w Rcpp. Zmienna tego typu może być przekazana do środowiska R.
Macierztypedef Rcpp::NumericMatrix RMatrixRMatrix mTyp macierz w Rcpp. Zmienna tego typu może być przekazana do środowiska R.
Wektortypedef Rcpp::NumericVector RVectorRVector vTyp wektor w Rcpp. Zmienna tego typu może być przekazana do środowiska R.
Tabelatypedef Rcpp::DataFrame RTableRTable tTyp tabela w Rcpp. Zmienna tego typu może być przekazana do środowiska R.
Tabele w R nazywają się data.frame.
Typ dowolnytypedef RInside::Proxy RProxy-Typ dowolny. Funkcja R zwraca wynik typu RProxy, który jest następnie konkretyzowany. Patrz pomoc do funkcji „RProxy eval(Text)”.
Na tekst C++Text ctext(const RText &)ctext(tekst_R)Konwertuję zmienną tekstową z R na zmienną tekstową C++.
Na tekst RRText rtext(const Text &)rtext(tekst_C)Konwertuję zmienną tekstową z C++ na zmienną tekstową R.
Na datę C++date cdate(const RDate &)cdate(data_R)Konwertuję zmienną data z R na zmienną data C++.
Na datę RRDate rdate(const date &)rdate(data_C)Konwertuję zmienną data z C++ na zmienną data R.
Na macierz C++matrix cmatrix(const RMatrix &)cmatrix(macierz_R)Konwertuję macierz z R na macierz C++.
Na macierz RRMatrix rmatrix(const matrix &)rmatrix(macierz_C)Konwertuję macierz z C++ na macierz R.
Na wektor C++matrix cvector(const RVector &)cvector(wektor_R)Konwertuję wektor z R na wektor C++.
Na wektor RRVector rvector(const matrix &)rvector(wektor_C)Konwertuję wektor z C++ na wektor R.
Na tabelę C++table ctable(const RTable &)ctable(tabela_R)Konwertuję tabelę z R (data.frame) na tabelę C++.
Na tabelę RRTable rtable(const table &)rtable(tabela_C)Konwertuję tabelę z C++ na tabelę R (data.frame).
Przesyłanie zmiennych do Rvoid var(string,int)

void var(string,double)

void var(string,const Text &)

void var(string,const date &)

void var(string,const matrix &)

void var(string,const table &)
var("n",n)
var("x",x)
var("nazwa",nazwa)
var("data1",data1)
var("A",A)
var("tab",tab)
Za pomocą funkcji var można przesłać zmienną z C++ do środowiska R. Nazwa zmiennej w R będzie taka jak pierwszy argument funkcji (string), a wartość taka jak drugi argument.
W podanych przykładach nazwy zmiennych w R są takie same jak w C++, jednak nie jest to wymagane. To znaczy można napisać np.:
var("x",y)
Użycie zmienne w Ruse(name)use(x)Zmienna C++ name staje się widoczna w R pod tą samą nazwą.
Deklarowanie zmiennej w Rlet(name1,name2)let(x,y)W R powstaje zmienna name1, odpowiadająca zmiennej C++ name2.
Uruchomienie koduvoid evalQ(Text)evalQ("print(2)")Funkcja uruchamia podany kod R. Działania są wykonywane w środowisku RE.
Uruchomienie kodu zwracającego wynikRProxy eval(Text)RVector wektorR=eval("rep(1,10)")Funkcja uruchamia podany kod R. Działania są wykonywane w środowisku RE.
Wynik może być typu: int, double, RText, RDate, RMatrix, RVector lub RTable.
Uruchomienie kodu z plikuvoid sourceQ(Text)
void sourceQ(RInside &,Text)
sourceQ("funkcja.R")
sourceQ(R1,"funkcja.R")
Funkcja uruchamia kod R z pliku o podanej nazwie. Domyślnie działania są wykonywane w środowisku RE, ale mogą być wykonywane w innych instancjach tego środowiska (jak w drugim przykładzie).
Uruchomienie kodu zwracającego wynik z plikuRProxy source(Text)
RProxy source(RInside &,Text)
RMatrix macierzR=source("funkcja2.R")
RTable tabelaR=source(R1,"funkcja3.R")
Funkcja uruchamia kod R z pliku o podanej nazwie. Domyślnie działania są wykonywane w środowisku RE, ale mogą być wykonywane w innych instancjach tego środowiska (jak w drugim przykładzie).
Wynik może być typu: int, double, RText, RDate, RMatrix, RVector lub RTable.
Makra uruchamiająceproc(name)
fun(name)
run(name)
proc(print(2))
fun(rep(1,10))
run(funkcja2)
Makra pozwalające uruchamiać kod z pominięciem cudzysłowów i rozszerzeń pliku (bardziej czytelne).