| Metoda | Deklaracja metody | Przykład wywołania | Opis działania |
|---|---|---|---|
| Utworzenie pustych danych | data() | data d | Tworzone są puste dane |
| Utworzenie danych o zadanych wymiarach | data(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 wymiarze | data(int m) | data d(3) | Tworzone są dane wymiarach m x m. W tym przypadku tworzone są dane o wymiarach 3x3. |
| Liczba wierszy | int size1(const data &a) int nrow(const data &a) | size1(d) nrow(d) | Zwraca liczbę wierszy obiektu |
| Liczba kolumn | int 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 numerze | Text & rowname(int i) | d.rowname(1) | Zwraca etykietę wiersza o numerze 'i'. W tym przypadku pierwszego |
| Etykieta kolumny o danym numerze | Text & 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 kolumny | T & 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 kolumny | T & 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 kolumny | T & 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 kolumny | T & 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 wektora | T & 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 nazwy | data 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 numeru | data operator [](int j) | d[16] | Zwracana jest kolumna danych o numerze 'j'. W tym przypadku kolumna 16 |
| Wyszukiwanie numeru wiersza | int 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 kolumny | int 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 numerze | int 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 nazwie | int 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 obiektu | void 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ści | void 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 obiektu | void 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 wektor | data vect(const data &a) | vect(d) | Obiekt 'a' jest przegrupowywany w wektor kolumnowy. Elementy są kopiowane kolumnami. |
| Dodanie nowych wierszy | void 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 kolumny | void newcol(Text name2) | d.newcol(„DOCHOD”) | Dodawana jest nowa kolumna o nazwie name2 do danych. W tym przypadku kolumna o etykiecie „DOCHOD” |
| Czy pusty | int isempty(const data &a) | isempty(d) | Sprawdzenie czy obiekt 'a' jest pusty. Zwraca 0 (false) lub 1 (true) |
| Czy kwadratowy | int issqr(const data &a) | issqr(d) | Sprawdzenie czy obiekt 'a' jest kwadratowy. Zwraca 0 (false) lub 1 (true) |
| Czy symetryczny | int 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 istotny | int 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 istotne | int 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 wektora | data 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ę razy | data 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ści | data 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ę razy | data 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ę razy | data 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 funkcji | data 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 zakresie | void 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. |
| Czyszczenie | void 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ów | void forall(T f(T)) | d.forall(f) | Na elementy obiektu nakładana jest funkcja ‘f’ |
| Aplikowanie funkcji do danej kolumny | void 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 wiersza | void 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ów | data 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 kolumny | data 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 wiersza | data 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 wierszy | void 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 kolumn | void 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 wierszy | void 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 kolumn | void copynames_r2c(const data &src,data &dst) | copynames_r2c(d,e) | Kopiowane są etykiety wierszy z obiektu ‘src’ do etykiet kolumn ‘dst’. |
| Kopiowanie etykiet | void copynames(const data &src,data &dst) | copynames(d,e) | Kopiowane są etykiety wierszy i kolumn z obiektu ‘src’ do ‘dst’. |
| Wybór kolumn/kolumny | data 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/kolumny | setcol(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/wierszy | data 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/wierszy | setrow(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 kolumn | data 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 kolumn | void 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 kolumn | data operator | (const data &a,const data &b) | a|b | Obiekty ‘a’ i ‘b’ są łączone poprzez ich zestawienie obok siebie. Wymagana jest zgodność liczby wierszy. |
| Dołączanie kolumn | void operator |=(const data &a) | a|=b | Obok obiektu ‘a’ jest dostawiany ‘b’. Wymagana jest zgodność liczby wierszy. |
| Łączenie obiektów poprzez dodanie wierszy | data operator & (const data &a,const data &b) | a&b | Obiekty ‘a’ i ‘b’ są łączone poprzez ich zestawienie jeden nad drugim. Wymagana jest zgodność liczby kolumn. |
| Dołączanie wierszy | void operator &=(const data &a) | a&=b | Pod obiektem ‘a’ jest dostawiany ‘b’. Wymagana jest zgodność liczby kolumn. |
| Tasowanie kolumn | data shufflecol(const data &a,const data &b) | shufflecol(a,b) | Między kolumny ‘a’ są równomiernie wstawiane kolumny ‘b’ |
| Tasowanie wierszy | data shufflerow(const data &a,const data &b) | shufflerow(a,b) | Między wiersze ‘a’ są równomiernie wstawiane wiersze ‘b’ |
| Transpozycja | data operator ~ (const data &a) void tr() | ~d d.tr() | Transpozycja wierszy i kolumn. W wersji ‘tr()’ obiekt musi być kwadratowy. |
| Zamiana lewo-prawo | data 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 stopni | data 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ąt | data tril(const data &a) void tril() | tril(d) d.tril() | Dolny trójkąt (górny wypełniony „” lub 0). |
| Górny trójkąt | data triu(const data &a) void triu() | triu(d) d.triu() | Górny trójkąt (dolny wypełniony „” lub 0). |
| Zamiana wierszy | void swap_rows(int r1,int r2) | d.swap_rows(2,10) | Zamiana wierszy. W tym przypadku zamiana wiersza 2 z 10. |
| Zamiana kolumn | void swap_cols(int c1,int c2) | d.swap_cols(2,10) | Zamiana kolumn. W tym przypadku zamiana kolumny 2 z 10. |
| Losowy układ wierszy | void random_shuffle_rows() | d.random_shuffle_rows() | Wiersze są układane w losowej kolejności |
| Losowy układ kolumn | void random_shuffle_cols() | d.random_shuffle_cols() | Kolumny są układane w losowej kolejności |
| Zmiana kolejności wierszy | void 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 kolumn | void 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-do | void leave_rows(int r1,int r2) | d.leave_rows(50,100) | Pozostawianie wierszy od r1 do r2 |
| Pozostawianie kolumn od-do | void leave_cols(int c1,int c2) | d.leave_cols(50,100) | Pozostawianie kolumn od c1 do c2 |
| Pozostawianie wierszy do danego | void leave_rows_to(int r2) | d.leave_rows_to(100) | Pozostawianie wierszy od 1 do r2 |
| Próbka losowa określona ilościowo | data 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łem | data 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 danych | data 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ów | vector 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ównanie | int 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:510 | vector 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:510 | vector 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 wektora | vector 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 dualne | void 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 danych | void 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ść danych | vector 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 unikalne | data 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 element | int 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 elementy | vector 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ów | data setunion(const data &,const data &) | setunion(d,e) | Zwraca sumę zbiorów |
| Iloczyn zbiorów | data setintersect(const data &,const data &) | setintersect(d,e) | Zwraca iloczyn zbiorów |
| Różnica zbiorów | data setdiff(const data &,const data &) | setdiff(d,e) | Zwraca różnicę zbiorów |
| Czy równe zbiory | int 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 tekstowego | int 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 tekstowego | void 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świetlanie | void display(Text name="") | d.display() | Obiekt jest wyświetlany w konsoli. Można podać jego nazwę (parametr ‘name’). |
| Kasowanie | void free() | d.free() | Obiekt jest kasowany. Zwalniana jest pamięć, z której korzystał. |
