Dane (data)

MetodaDeklaracja metodyPrzykład wywołaniaOpis działania
Utworzenie pustych danychdata()data dTworzone są puste dane
Utworzenie danych o zadanych wymiarachdata(int m,int m)data d(5,3)Tworzone są dane o wymiarach m x n (m wierszy, n kolumn).
W tym przypadku tworzone są dane o wymiarach 5x3 (5 wierszy, 3 kolumny).
Utworzenie danych o zadanym wymiarzedata(int m)data d(3)Tworzone są dane wymiarach m x m.
W tym przypadku tworzone są dane o wymiarach 3x3.
Liczba wierszyint size1(const data &a)
int nrow(const data &a)
size1(d)
nrow(d)
Zwraca liczbę wierszy obiektu
Liczba kolumnint size2(const data &a)
int ncol(const data &a)
size2(d)
ncol(d)
Zwraca liczbę kolumn obiektu
Długośćint length(const data &a)length(d)Zwraca długość obiektu (większy z wymiarów). W przypadku obiektów, których jeden z wymiarów wynosi 1, funkcja ta ma naturalną interpretację.
Etykieta wiersza o danym numerzeText & rowname(int i)d.rowname(1)Zwraca etykietę wiersza o numerze 'i'. W tym przypadku pierwszego
Etykieta kolumny o danym numerzeText & colname(int j)d.colname(5)Zwraca etykietę kolumny o numerze 'j'. W tym przypadku 5
Dostęp do elementu za pomocą numeru wiersza i numeru kolumnyT & operator ()(int i,int j)d(2,3)Zwraca element z wiersza ‘I’ i kolumny ‘j’. W tym przypadku z wiersza 2 i kolumny 3
Dostęp do elementu za pomocą numeru wiersza i nazwy kolumnyT & operator ()(int i,Text name2)d(2,”COL3”)Zwraca element z wiersza ‘I’ i kolumny o nazwie name2. W tym przypadku z wiersza 2 i kolumny o nazwie „COL3”
Dostęp do elementu za pomocą nazwy wiersza i numeru kolumnyT & operator ()(Text name1,int j)d(“ROW2”,3)Zwraca element z wiersza o nazwie name1 i kolumny ‘j’. W tym przypadku z wiersza o nazwie „ROW2” i kolumny 3
Dostęp do elementu za pomocą nazwy wiersza i nazwy kolumnyT & operator ()(Text name1,Text name2)d(“ROW2”,”COL3”)Zwraca element z wiersza o nazwie name1 i kolumny o nazwie name2. W tym przypadku z wiersza o nazwie „ROW2” i kolumny o nazwie „COL3”
Dostęp do elementu wektoraT & operator ()(int i)d(5)Jeśli obiekt na jeden z wymiarów równy 1, czyli jest wektorem, aby dostać się do jego elementów wystarczy podać tylko jeden argument – pozycję elementu. W tym przypadku zwracany jest element piąty.
Wybór kolumny na podstawie jej nazwydata operator [](Text name2)d[“WIEK”]Zwracana jest kolumna danych o nazwie name2. W tym przypadku kolumna o etykiecie „WIEK”
Wybór kolumny na podstawie jej numerudata operator [](int j)d[16]Zwracana jest kolumna danych o numerze 'j'. W tym przypadku kolumna 16
Wyszukiwanie numeru wierszaint find_row(Text name1,int upper=1)d.find_row(„ROW1”)Zwraca numer wiersza o etykiecie name1. W przypadku nieznalezienia, zwraca 0. Parametr upper=1 oznacza, że wielkość liter w nazwie nie będzie brana pod uwagę.
W tym przypadku wyszukiwany jest wiersz o etykiecie „ROW1”.
Wyszukiwanie numeru kolumnyint find_col(Text name2,int upper=1)d.find_col(„COL5”)Zwraca numer kolumny o etykiecie name2. W przypadku nieznalezienia, zwraca 0. Parametr upper=1 oznacza, że wielkość liter w nazwie nie będzie brana pod uwagę.
W tym przypadku wyszukiwana jest kolumna o etykiecie „COL5”.
Wyszukiwanie elementu w kolumnie o danym numerzeint find_cell(T cell,int col,int row0=1)d.find_cell(“10 lat”,16)Przeszukuje kolumnę o numerze col, żeby znaleźć element cell. Zwraca numer wiersza, w którym jest element cell. Jeśli nie znaleziono szukanego elementu, funkcja zwraca 0. Domyślnie szukanie rozpoczyna się od wiersza o numerze 1. Można wybrać inny wiersz startowy (parametr row0).
W tym przypadku szukany jest element „10 lat” w kolumnie 16, począwszy od wiersza 1.
Wyszukiwanie elementu w kolumnie o danej nazwieint find_cell(T cell,Text cname,int row0=1,int upper=1)d.find_cell(“10 lat”,”WIEK”,1000)Przeszukuje kolumnę o nazwie cname, żeby znaleźć element cell. Zwraca numer wiersza, w którym jest element cell. Jeśli nie znaleziono szukanego elementu, funkcja zwraca 0. Domyślnie szukanie rozpoczyna się od wiersza o numerze 1. Można wybrać inny wiersz startowy (parametr row0). Parametr upper=1 oznacza, że wielkość liter w nazwie nie będzie brana pod uwagę.
W tym przypadku szukany jest element „10 lat” w kolumnie o nazwie „WIEK”, począwszy od wiersza 1000.
Zmiana rozmiaru obiektuvoid resize(int m_new,int n_new)d.resize(5,10)Zmiana wymiarów obiektu. Po zmianie obiekt ma m_new wierszy i n_new kolumn. Zawartość obiektu ulega skasowaniu.
W tym przypadku obiekt będzie miał wymiary 5x10
Zmiana rozmiaru obiektu z zachowaniem zawartościvoid resizec(int m_new,int n_new)d.resizec(5,10)Zmiana wymiarów obiektu. Po zmianie obiekt ma m_new wierszy i n_new kolumn. Zawartość obiektu jest zachowywana. Jeśli nowe wymiary są większe od pierwotnych, to elementy nie występujące w obiekcie pierwotnym pozostają puste (dla typu tekst) lub 0 (dla typu liczbowego).
W tym przypadku obiekt będzie miał wymiary 5x10
Przegrupowanie obiektuvoid reshape(int m_new,int n_new)d.reshape(5,10)Przegrupowanie obiektu pozwala zmienić układ elementów obiektu. Wymagane jest, aby liczba elementów pierwotnego i docelowego była taka sama. Elementy są kopiowane kolumnami.
W tym przypadku jeśli ‘d’ ma 50 elementów (np. ma wymiary 25x2), to może zostać przegrupowane do obiektu o wymiarach 5x10.
Zmiana w wektordata vect(const data &a)vect(d)Obiekt 'a' jest przegrupowywany w wektor kolumnowy. Elementy są kopiowane kolumnami.
Dodanie nowych wierszyvoid newrows(int m2)d.newrows(100)Dodawane są nowe wiersze do danych. Liczba nowych wierszy wynosi m2.
W tym przypadku dochodzi 100 wierszy.
Dodanie nowej kolumnyvoid newcol(Text name2)d.newcol(„DOCHOD”)Dodawana jest nowa kolumna o nazwie name2 do danych.
W tym przypadku kolumna o etykiecie „DOCHOD”
Czy pustyint isempty(const data &a)isempty(d)Sprawdzenie czy obiekt 'a' jest pusty. Zwraca 0 (false) lub 1 (true)
Czy kwadratowyint issqr(const data &a)issqr(d)Sprawdzenie czy obiekt 'a' jest kwadratowy. Zwraca 0 (false) lub 1 (true)
Czy symetrycznyint issym(const data &a)issym (d)Sprawdzenie czy obiekt 'a' jest symetryczny względem głównej przekątnej. Zwraca 0 (false) lub 1 (true)
Czy jakikolwiek istotnyint any(const data &a)any(d)Sprawdzenie czy obiekt 'a' zawiera jakikolwiek istotny element. W przypadku elementów tekstowych nieistotny jest ciąg pusty znaków („”). W przypadku elementów liczbowych nieistotne są zera.
Zwraca 0 (false) lub 1 (true)
Czy wszystkie istotneint all(const data &a)all(d)Sprawdzenie czy wszystkie elementy obiektu 'a' są istotne. W przypadku elementów tekstowych nieistotny jest ciąg pusty znaków („”). W przypadku elementów liczbowych nieistotne są zera.
Zwraca 0 (false) lub 1 (true)
Utworzenie wektoradata c(T,T,T,T,T,T,T,T,T,T)c(10,20,30,40,50)
c(“Ala”,”ma”,”kota”)
Tworzony jest wektor na podstawie stałych. W ten sposób można tworzyć wektory o długości do 10. Dłuższe należy tworzyć za pomocą funkcji ‘vd’ dostępnej dla macierzy.
W pierwszym przypadku wektor liczb [10,20,30,40,50]. W drugim wektor tekstowy [„Ala”,”ma”,”kota”].
Powielenie zadaną liczbę razydata rep(const data &v,int n)rep(d,2)Zwraca dany wektor v powielony n razy.
W tym przypadku 2 razy
Powielenie do danej długościdata replen(const data &v,int l)replen(d,10)Zwraca dany wektor v powielony tyle razy, aby wektor wynikowy miał długość l.
W tym przypadku zwracany jest wektor o długości 10
Powielenie każdego elementu daną liczbę razydata repeach(const data &v,int n)repeach(d,2)Zwraca wektor v składający się z elementów wektora d, każdego powtórzonego n razy.
W tym przypadku zwracany jest wektor składający się z elementów wektora d, każdy element powtórzony 2 razy.
Powielenie każdego elementu zdefiniowaną liczbę razydata rep(const data &v,const vector &index)rep(d,indeks)Zwraca wektor składający się z elementów wektora v, każdego powtórzonego zdefiniowaną w wektorze index liczbę razy.
Przykładowo:
d to wektor [„Kot”, „Pies”]
indeks to wektor [2,3]
Wówczas zwracany jest wektor [„Kot”, ”Kot”, ”Pies” ,”Pies”, ”Pies”]
Utworzenie danych na podstawie dwóch wektorów i funkcjidata outer(const data &v1,const data &v2,T fun(T,T))outer(d1,d2,suma)Tworzony jest obiekt prostokątny, którego elementy są wynikiem funkcji ‘fun’ wywołanej z argumentami pochodzącymi z wektora v1 i v2. Elementy obiektu wyjściowego o współrzędnych (i,j) przyjmują wartości fun(v1(i),v2(j)).
W tym przypadku zwracany jest obiekt, którego elementy to wywołanie funkcji ‘suma’ dla odpowiednich elementów d1 i d2.
Wypełnianie stałąvoid fill(T t)d.fill(„ABC”)Obiekt jest wypełniany stałą wartością ‘t’.
W tym przypadku, wszystkie elementy są wypełnione tekstem „ABC”
Wypełnianie stałą w zakresievoid fill(T t,int m0,int n0,int m_num,int n_num)d.fill(„ABC”,1,2,10,20)Obiekt jest wypełniany stałą wartością ‘t’ w zadanym zakresie. W zakresie od wiersza ‘m0’ i kolumny ‘n0’ wypełnianych jest ‘m_num’ wierszy i ‘n_num’ kolumn.
W tym przypadku następuje wypełnienie tekstem „ABC” dziesięciu wierszy zaczynając od pierwszego i 20 kolumn zaczynając od drugiej.
Czyszczenievoid clear(int clnames=0)d.clear()Obiekt jest czyszczony. Jeśli elementy są typu tekst, wstawiany jest pusty tekst („”). Jeśli elementy są liczbowe, wstawiane są zera. Można wybrać, czy usunąć etykiety kolumn i wierszy (parametr ‘clnames’)
Aplikowanie funkcji do elementówvoid forall(T f(T))d.forall(f)Na elementy obiektu nakładana jest funkcja ‘f’
Aplikowanie funkcji do danej kolumnyvoid forcol(int n,T f(T))d.forcol(2,f)Na elementy obiektu w kolumnie ‘n’ nakładana jest funkcja ‘f’
Aplikowanie funkcji do danego wierszavoid forrow(int n,T f(T))d.forrow(3,f)Na elementy obiektu w wierszu ‘n’ nakładana jest funkcja ‘f’
Tworzenie obiektu poprzez aplikowanie funkcji do elementówdata forall(const data &d,T f(T))forall(d,f)Tworzony jest obiekt, którego element powstają z elementów ‘d’ poprzez nałożenie funkcji ‘f’.
Tworzenie obiektu poprzez aplikowanie funkcji do danej kolumnydata forcol(const data &d,int n,T f(T))forcol(d,2,f)Tworzony jest obiekt, którego element powstają z elementów ‘d’. Na kolumnę o numerze ‘n’ nakładana jest funkcja ‘f’.
Tworzenie obiektu poprzez aplikowanie funkcji do danego wierszadata forrow(const data &d,int n,T f(T))forrow(d,3,f)Tworzony jest obiekt, którego element powstają z elementów ‘d’. Na wiersz o numerze ‘n’ nakładana jest funkcja ‘f’.
Kopiowanie fragmentu (6 parametrów zakresu)void copy(const data &src,int m0_src,int n0_src,int m_num,int n_num,data &dst,int m0_dst,int n0_dst)copy(d,1,1,10,20,e,3,2)Kopiowanie fragmentu obiektu ‘src’ do obiektu ‘dst’. Można wybrać wiersz początkowy i liczbę wierszy (parametry ‘m0_src’,’m_num’) oraz kolumnę początkową i liczbę kolumn do skopiowania (parametry ‘n0_src’, ‘n_num’). Można też określić, w które miejsce obiektu ‘dst’ wkopiować (parametry ‘m0_dst’, ‘n0_dst’). Operacja kopiowania jest zabezpieczona przed przekroczeniem zakresów obiektu docelowego.
W tym przypadku kopiuje się z ‘d’ do ‘e’. Pierwszych 10 wierszy i pierwszych 20 kolumn jest kopiowanych w miejsce zaczynające się od 3 wiersza i drugiej kolumny ‘e’.
Kopiowanie fragmentu (4 parametry zakresu)void copy(const data &src,int m0,int n0,int m_num,int n_num,data &dst)copy(d,1,1,10,20,e)Kopiowanie fragmentu obiektu ‘src’ do obiektu ‘dst’. Można wybrać wiersz początkowy i liczbę wierszy (parametry ‘m0’,’m_num’) oraz kolumnę początkową i liczbę kolumn do skopiowania (parametry ‘n0’, ‘n_num’). Operacja kopiowania jest zabezpieczona przed przekroczeniem zakresów obiektu docelowego.
W tym przypadku kopiuje się z ‘d’ do ‘e’. Pierwszych 10 wierszy i pierwszych 20 kolumn jest kopiowanych w miejsce zaczynające się od pierwszego wiersza i pierwszej kolumny ‘e’.
Kopiowanie fragmentu (2 parametry zakresu)void copy(const data &src,int m_num,int n_num,data &dst)copy(d,10,20,e)Kopiowanie fragmentu obiektu ‘src’ do obiektu ‘dst’. Można wybrać liczbę wierszy (parametry ’m_num’) oraz liczbę kolumn do skopiowania (parametry ‘n_num’). Operacja kopiowania jest zabezpieczona przed przekroczeniem zakresów obiektu docelowego.
W tym przypadku kopiuje się z ‘d’ do ‘e’. Pierwszych 10 wierszy i pierwszych 20 kolumn jest kopiowanych w miejsce zaczynające się od pierwszego wiersza i pierwszej kolumny ‘e’.
Kopiowanie fragmentu (bez parametrów zakresu)void copy(const data &src,data &dst)copy(d,e)Kopiowanie fragmentu obiektu ‘src’ do obiektu ‘dst’. Operacja kopiowania jest zabezpieczona przed przekroczeniem zakresów obiektu docelowego.
W tym przypadku kopiuje się z ‘d’ do ‘e’.
Kopiowanie etykiet z wierszy do wierszyvoid copynames_r2r(const data &src,data &dst)copynames_r2r(d,e)Kopiowane są etykiety wierszy z obiektu ‘src’ do etykiet wierszy ‘dst’.
Kopiowanie etykiet z kolumn do kolumnvoid copynames_c2c(const data &src,data &dst)copynames_c2c(d,e)Kopiowane są etykiety kolumn z obiektu ‘src’ do etykiet kolumn ‘dst’.
Kopiowanie etykiet z kolumn do wierszyvoid copynames_c2r(const data &src,data &dst)copynames_c2r(d,e)Kopiowane są etykiety kolumn z obiektu ‘src’ do etykiet wierszy ‘dst’.
Kopiowanie etykiet z wierszy do kolumnvoid copynames_r2c(const data &src,data &dst)copynames_r2c(d,e)Kopiowane są etykiety wierszy z obiektu ‘src’ do etykiet kolumn ‘dst’.
Kopiowanie etykietvoid copynames(const data &src,data &dst)copynames(d,e)Kopiowane są etykiety wierszy i kolumn z obiektu ‘src’ do ‘dst’.
Wybór kolumn/kolumnydata col(const data &d,const vector &index)
data col(const data &d,int no)
data col(const vector &index)
data col(int no)
col(d,c(1,2,3))
col(d,5)
d.col(c(1,2,3))
d.col(5)
Z obiektu ‘d’ wybierane są kolumny zdefiniowane przez ‘index’. Można wskazać jedną kolumnę.
W pierwszym przypadku wybierane są kolumny 1, 2 i 3.
W drugim przypadku wybierana jest kolumna piąta.
Wstawienie kolumn/kolumnysetcol(const vector &index,const data &cols)
setcol(int no,const data &cols)
d.setcol(c(1,2,3),cols)
d.setcol(5,col7)
Do obiektu ‘d’ wstawiane są kolumny ‘cols’ w miejsce zdefiniowane przez wektor ‘index’. Można wstawić jedną kolumnę, wskazując numer.
W pierwszym przypadku do ‘d’ wstawiane są ‘cols’ do 1, 2 i 3 kolumny.
W drugim przypadku do piątej kolumny ‘d’ wstawiana jest kolumna ‘col7’
Wybór wiersza/wierszydata row(const data &d,const vector &index)
data row(const data &d,int no)
data row(const vector &index)
data row(int no)
row(d,c(1,2,3))
row(d,5)
d.row(c(1,2,3))
d.row(5)
Z obiektu ‘d’ wybierane są wiersze zdefiniowane przez ‘index’. Można wskazać jeden wiersz.
W pierwszym przypadku wybierane są wiersze 1, 2 i 3.
W drugim przypadku wybierany jest wiersz piąty.
Wstawienie wiersza/wierszysetrow(const vector &index,const data &rows)
setrow(int no,const data &rows)
d.setrow(c(1,2,3),rows)
d.setrow(5,row7)
Do obiektu ‘d’ wstawiane są wiersze ‘rows’ w miejsce zdefiniowane przez wektor ‘index’. Można wstawić jeden wiersz, wskazując numer.
W pierwszym przypadku do ‘d’ wstawiane są ‘rows’ do 1, 2 i 3 wiersza.
W drugim przypadku do piątego wiersza ‘d’ wstawiany jest wiersz ‘row7’
Wybór wierszy i kolumndata get(const data &src,const vector &index_rows,const vector &index_cols)
data get(const vector &index_rows,const vector &index_cols)
get(d,c(1,2),c(3,5))
d.get(c(1,2),c(3,5))
Z obiektu ‘src’ wybierane są wiersze i kolumny zdefiniowane indeksami.
W tym przypadku z ‘d’ wybierane są elementy z wierszy 1 i 2 oraz kolumn 3 i 5.
Wstawianie wierszy i kolumnvoid set(const vector &index_rows_dst,const vector &index_cols_dst,const data &src,const vector &index_rows_src,const vector &index_cols_src)e.set(c(20,15),c(1,2),d,c(1,2),c(3,5))Do obiektu w miejsce zdefiniowane indeksami docelowymi wstawiany jest fragment obiekt ‘src’ zdefiniowany indeksami źródłowymi.
W tym przypadku z ‘d’ wybierane są elementy z wierszy 1 i 2 i kolumn 3 i 5. Są one wstawiane do ‘e’ do wierszy 20 i 15 i kolumn 1 i 2.
Wstawianie wierszy i kolumn (bez definicji indeksów źródłowych)void set(const vector & index_rows_dst,const vector & index_cols_dst,const data &src)e.set(c(20,15),c(1,2),d)Do obiektu w miejsce zdefiniowane indeksami docelowymi wstawiany jest obiekt ‘src’.
W tym przypadku z obiekt ‘d’ jest wstawiany do ‘e’ do wierszy 20 i 15 i kolumn 1 i 2.
Łączenie obiektów poprzez dodanie kolumndata operator | (const data &a,const data &b)a|bObiekty ‘a’ i ‘b’ są łączone poprzez ich zestawienie obok siebie. Wymagana jest zgodność liczby wierszy.
Dołączanie kolumnvoid operator |=(const data &a)a|=bObok obiektu ‘a’ jest dostawiany ‘b’. Wymagana jest zgodność liczby wierszy.
Łączenie obiektów poprzez dodanie wierszydata operator & (const data &a,const data &b)a&bObiekty ‘a’ i ‘b’ są łączone poprzez ich zestawienie jeden nad drugim. Wymagana jest zgodność liczby kolumn.
Dołączanie wierszyvoid operator &=(const data &a)a&=bPod obiektem ‘a’ jest dostawiany ‘b’. Wymagana jest zgodność liczby kolumn.
Tasowanie kolumndata shufflecol(const data &a,const data &b)shufflecol(a,b)Między kolumny ‘a’ są równomiernie wstawiane kolumny ‘b’
Tasowanie wierszydata shufflerow(const data &a,const data &b)shufflerow(a,b)Między wiersze ‘a’ są równomiernie wstawiane wiersze ‘b’
Transpozycjadata operator ~ (const data &a)
void tr()
~d
d.tr()
Transpozycja wierszy i kolumn. W wersji ‘tr()’ obiekt musi być kwadratowy.
Zamiana lewo-prawodata fliplr(const data &a)
void fliplr()
fliplr(d)
d.fliplr()
Zamiana elementów z lewej na prawo.
Zamiana góra-dółdata flipud(const data &a)
void flipud()
flipud(d)
d.flipud()
Zamiana elementów z gór na dół.
Obrót o 90 stopnidata rot90(const data &a)
void rot90()
rot90(d)
d.rot90()
Obrót o 90 stopni.
Przesunięcie w górędata up(const data &a)
void up()
up(d)
d.up()
Przesunięcie trójkątne w górę.
Przesunięcie w dółdata down(const data &a)
void down()
down(d)
d.down()
Przesunięcie trójkątne w dół.
Dolny trójkątdata tril(const data &a)
void tril()
tril(d)
d.tril()
Dolny trójkąt (górny wypełniony „” lub 0).
Górny trójkątdata triu(const data &a)
void triu()
triu(d)
d.triu()
Górny trójkąt (dolny wypełniony „” lub 0).
Zamiana wierszyvoid swap_rows(int r1,int r2)d.swap_rows(2,10)Zamiana wierszy.
W tym przypadku zamiana wiersza 2 z 10.
Zamiana kolumnvoid swap_cols(int c1,int c2)d.swap_cols(2,10)Zamiana kolumn.
W tym przypadku zamiana kolumny 2 z 10.
Losowy układ wierszyvoid random_shuffle_rows()d.random_shuffle_rows()Wiersze są układane w losowej kolejności
Losowy układ kolumnvoid random_shuffle_cols()d.random_shuffle_cols()Kolumny są układane w losowej kolejności
Zmiana kolejności wierszyvoid reorder_rows(const vector &ord,int reord_values=1,int reord_labels=1)d.reorder_rows(ord)Wiersze są układane w kolejności zdefiniowanej przez wektor ord. Można określić, czy zmiana kolejności dotyczy wartości (parametr reord_values), czy etykiet (parametr reord_labels). Domyślnie zamieniane są i wartości, i etykiety.
Zmiana kolejności kolumnvoid reorder_cols(const vector &ord,int reord_values=1,int reord_labels=1)d.reorder_cols(ord)Kolumny są układane w kolejności zdefiniowanej przez wektor ord. Można określić, czy zmiana kolejności dotyczy wartości (parametr reord_values), czy etykiet (parametr reord_labels). Domyślnie zmieniane są i wartości , i etykiety.
Pozostawianie wierszy od-dovoid leave_rows(int r1,int r2)d.leave_rows(50,100)Pozostawianie wierszy od r1 do r2
Pozostawianie kolumn od-dovoid leave_cols(int c1,int c2)d.leave_cols(50,100)Pozostawianie kolumn od c1 do c2
Pozostawianie wierszy do danegovoid leave_rows_to(int r2)d.leave_rows_to(100)Pozostawianie wierszy od 1 do r2
Próbka losowa określona ilościowodata sample_n(int num,int repl=0)d.sample_n(1000)Losuje próbkę o liczności num z danych. Parametr repl określa, czy losowanie ma być ze zwracaniem (domyślnie bez zwracania).
W przykładzie wylosowanych będzie 1000 przypadków bez zwracania.
Próbka losowa określona udziałemdata sample_frac(double frac,int repl=0)d.sample_frac(0.5,1)Losuje próbkę o zdefiniowanym udziale z danych. Parametr frac określa udział. Parametr repl określa, czy losowanie ma być ze zwracaniem (domyślnie bez zwracania).
W przykładzie wylosowanych będzie 50% przypadków ze zwracaniem.
Filtrowanie danychdata filter(const data &d,const vector &v)
data filter(const vector &v)
filter(d,v)
d.filter(v)
Z obiektu ‘d’ są wybierane wiersze, dla których wektor warunkowy ‘v’ przyjmuje wartości 1 (pomijane są te z 0). Długość ‘v’ musi być zgodna z liczbą wierszy ‘d’.
Druga wersja funkcji odwołuje się do obiektu ‘d’.
Dopasowywanie wektorówvector match(const data &v1,const data &v2,int fromlast=0,int nomatch=0)match(d,e)Sprawdzanie, na których pozycjach ‘v2’ są elementy ‘v1’. Zwracany jest wektor pozycji. Można wybrać kolejność działania funkcji (parametr ‘fromlast’) i co wstawić w przypadku, gdy nie znaleziono dopasowania (parametr ‘nomatch’).
Operacja +data operator + (const data &a,const T t)
data operator + (const T t,const data &a)
data operator + (const data &a,const data &b)
d+1.5
“ABC”+d
d+e
Dodawanie elementu 't' do obiektu 'a'. Element (liczba lub tekst) jest dodawany do każdego elementu obiektu.
Dodawanie dwóch obiektów o zgodnych rozmiarach ('a' do 'b') . Dodawanie odbywa się po pozycjach.
W przypadku liczb operacja + sumuje wartości. W przypadku tekstów operacja + scala teksty.
Operacja +=void operator +=(const data &a)
void operator +=(const T t)
d+=e
d+=1.5
d+=”ABC”
Dodawanie analogiczne do +, ale przyrostowo na obiekcie.
Porównanieint compare<>(const data &a,const data &b)compare(d,e)Zwraca wynik porównania obiektów 'a' i 'b'. Jeśli jednakowe, zwraca 1 (true). Jeśli różne, zwraca 0 (false).
Błąd:510vector operator == (const data &a,const data &b)
itd.
d <= e
d > e
Porównanie wektorów 'a' i 'b' po pozycjach. Zwraca wektor zero-jedynkowy (0 – false, 1 – true).
Błąd:510vector operator ==(const data &a,const U u)
itd.
d <= 1.5
d <= “ABC”
d <= Text(“ABC”)
d <= d(“2012-01-01”)
Porównanie wektora 'a' ze stałą 'u', która może być typu liczba, tekst lub data. Zwraca wektor zero-jedynkowy (0 – false, 1 – true).
Sortowanie wektoravector sort(data &v,Direction dir=ASCENDING,int sort_labels=1)sort(d)Sortowanie wektora ‘v’. Można wybrać kierunek sortowania (parametr ‘dir’) i czy sortować etykiety (parametr ‘sort_labels’). Możliwe kierunki sortowania ASCENDING (rosnąco) i DESCENDING (malejąco).
Sortowanie dualnevoid sort(data &v1,data &v2,Direction dir=ASCENDING,int sort_labels=1)sort(d,e)Sortowanie dualne wektorów. Sortowany jest wektor ‘v1’. Kolejność przypadków w ‘v2’ jest taka sama jak kolejność posortowanego ‘v1’. Można wybrać kierunek sortowania (parametr ‘dir’) i czy sortować etykiety (parametr ‘sort_labels’)
Sortowanie danychvoid sort(int no,Direction dir=ASCENDING,int sort_rows=1)
void sort(Text name,Direction dir=ASCENDING,int sort_rows=1)
d.sort(1,DESCENDING,0)
d.sort(“WIEK”,DESCENDING,1)
Sortowanie całych danych. Można określić numer lub nazwę wiersz/kolumny (parametr ‘no’/’name’), kierunek sortowania (‘dir’) oraz czy sortować wiersze, czy kolumny (‘sort_rows’).
W pierwszym przypadku ‘d’ jest sortowana malejąco. Na podstawie pierwszego wiersza są sortowane kolumny.
W drugim przypadku ‘d’ jest sortowana malejąco. Na podstawie kolumny „WIEK” są sortowane wiersze.
Kolejność danychvector order(const data &v,Direction dir=ASCENDING)order(d)Zwracany jest wektor kolejności po posortowaniu ‘v’. Można wybrać kierunek sortowania (parametr ‘dir’).
Elementy unikalnedata unique(const data &v,int fromlast=0)unique(d)Zwraca elementy unikalne wektora danych. Można wybrać kolejność działania funkcji – od początku wektora lub od końca (parametr ‘fromlast’)
Czy elementint iselement(T t,const data &v)iselement(“KOT”,d)Sprawdza, czy dany element ‘t’ należy do zbioru ‘v’. Zwraca 0 - false lub 1 – true
Czy elementyvector iselement(const data &v1,const data &v2)iselement(e,d)Sprawdza, czy elemeny ‘v1’ należą do zbioru ‘v2’. Zwraca wektor zero-jedynkowy (0 - false lub 1 – true)
Suma zbiorówdata setunion(const data &,const data &)setunion(d,e)Zwraca sumę zbiorów
Iloczyn zbiorówdata setintersect(const data &,const data &)setintersect(d,e)Zwraca iloczyn zbiorów
Różnica zbiorówdata setdiff(const data &,const data &)setdiff(d,e)Zwraca różnicę zbiorów
Czy równe zbioryint setequal(const data &,const data &)setequal(d,e)Zwraca 1 (true), jeśli zbiory są równe. Zwraca 0 (false), jeśli zbiory są różne
Wczytanie danych z pliku tekstowego / zapis do pliku tekstowegoint readtxt(const char *name,int show_progress=0,int row_lab=1,int col_lab=1,int quote=0,char col_sep='\t',int show_open_err=1)
int writetxt(const char *name,int show_progress=0,int row_lab=1,int col_lab=1,int quote=0,char col_sep='\t',char dec_sep=',',int show_open_err=1)
d.readtxt(“plik.txt”)
d.writetxt(“plik.txt”)
Odczyt / zapis danych. Możliwe parametry:
- name – nazwa pliku
- show_progress – czy pokazywać postęp odczytu/zapisu (domyślnie nie)
- row_lab – czy plik z etykietami wierszy (domyślnie tak)
- col_lab – czy plik z etykietami kolumn (domyślnie tak)
- quo te – czy elementy ujęte w cudzysłów (domyślnie nie)
- col_sep – separator kolumn (domyślnie tabulator)
- dec_sep – separator dziesiętny (domyślnie przecinek)
- show_open_err – czy komunikować błędy (domyślnie tak)
Funkcje zwracają 0, jeśli nie ma błędu. W innym przypadku 1.
Bezpieczne wczytanie danych z pliku tekstowego / bezpieczny zapis danych do pliku tekstowegovoid sreadtxt(const char *name,int show_progress=0,int row_lab=1,int col_lab=1,int quote=0,char col_sep='\t',int repeat_time=1)
void swritetxt(const char *name,int show_progress=0,int row_lab=1,int col_lab=1,int quote=0,char col_sep='\t',char dec_sep=',',int repeat_time=1)
d.sreadtxt(“plik.txt”)
d.swritetxt(“plik.txt”)
Bezpieczny odczyt / zapis. Jeśli plik jest zajęty, funkcja czeka na jego zwolnienie. Parametry jak przy zwykłym odczycie / zapisie. Inne parametry:
- repeat_time – czas po jakim następują próby dostępu do pliku (domyślnie 1 sek.)
Wyświetlanievoid display(Text name="")
d.display()Obiekt jest wyświetlany w konsoli. Można podać jego nazwę (parametr ‘name’).
Kasowanievoid free()d.free()Obiekt jest kasowany. Zwalniana jest pamięć, z której korzystał.