1 Język R zagadnienia wstępnedr Jarosław Olejniczak
2 Literatura M. Walesiak, Statystyczna analiza danych z wykorzystaniem programu R, Warszawa: Wydawnictwo Naukowe PWN, 2009. Kopczewska K., Kopczewski T., i Wojcik P., Metody Ilościowe w R. Aplikacje ekonomiczne i finansowe, CEDEWU.PL Wydawnictwa Fachowe, 2009. P. Biecek, Przewodnik po pakiecie R, Wrocław: Oficyna Wydawnicza GIS, 2008. B. Everitt, A handbook of statistical analyses using R, Boca Raton: Chapman & Hall/CRC, 2006. R. Baayen, Analyzing linguistic data : a practical introduction to statistics using R, Cambridge UK ;;New York: Cambridge University Press, 2008. P. Spector, Data manipulation With R, New York: Springer Verlag, 2008.
3 Strona języka R http://www.r-project.org/
4 Biblioteki http://cran.r-project.org/web/views/
5 Nakładki graficzne R- Commander (pakiet Rcmdr) Pakiet PMG Tinn-R RKward (linuks)
6 Należy uważać na : Kształt cudzysłowów Wielkie i małe litery SpacjeNazwy obiektów jak nazwy komend - R Polskie znaki
7 Pakiety w R Instalacja Instalowanie z intemetu : Packages -> Install package (s) Z zasobów lokalnych : Packages -> Install package (s) from local zip files… Bezpośrednio komendą : install.packages(„nazwa") # instalacja pakietu
8 Pakiety w R Używanie zainstalowanych pakietówPakiety wprowadza się do pamięci komendą: library(nazwa pakietu) Aby sprawdzić jakie pakiety są załadowane do pamięci należy wykonać komendę: search() Aby odszukać ścieżkę dostępu do zainstalowanego pakietu należy wykonać komendę: .find.package(„pakiet”) Zawartość pakietu można wyświetlić komendą : library(help=„nazwa pakietu”) Listę komend pakietu można uzyskać za pomocą: ls(„package:nazwa pakietu”)
9 Wczytywanie danych wejściowych z pliku tekstowegodane1<-read.table("X:/daneR/dane.txt", header=TRUE, sep="\t") Opcje: separator danych: średnik (sep=";"), tabulacja (sep=„/t"); spacja (sep=" ") oznaczenie znaku dziesiętnego: kropka (dec=". "), przecinek (dec=" , " ) nagłówki: przyjęcie, że pierwszy wiersz jest nagłówkiem (header=T; T dla domyślnie TRUE / lub F dla domyślnie od FALSE); opcje mogą być wpisywane w dowolnej kolejności.
10 Wczytywanie danych wejściowych z formatu SPSSdane2<-read.spss("X:/daneR/dane.sav", use.value.labels=FALSE, to.data.frame=TRUE) Opcje: separator danych: średnik (sep=";"), tabulacja (sep=„/t"); spacja (sep=" ") oznaczenie znaku dziesiętnego: kropka (dec=". "), przecinek (dec=" , " ) nagłówki: przyjęcie, że pierwszy wiersz jest nagłówkiem (header=T; T dla domyślnie TRUE / lub F dla domyślnie od FALSE); opcje mogą być wpisywane w dowolnej kolejności.
11 Wczytywanie danych wejściowych z pliku dbfdane3<-read.dbf("X:/daneR/dane.dbf") Opcje: separator danych: średnik (sep=";"), tabulacja (sep=„/t"); spacja (sep=" ") oznaczenie znaku dziesiętnego: kropka (dec=". "), przecinek (dec=" , " ) nagłówki: przyjęcie, że pierwszy wiersz jest nagłówkiem (header=T; T dla domyślnie TRUE / lub F dla domyślnie od FALSE); opcje mogą być wpisywane w dowolnej kolejności.
12 Wczytywanie danych wejściowych z pliku rozdzielanego tabulacjądane4<-read.delim("X:/daneR/dane.dat", header=FALSE, sep="\t") Opcje: separator danych: średnik (sep=";"), tabulacja (sep=„/t"); spacja (sep=" ") oznaczenie znaku dziesiętnego: kropka (dec=". "), przecinek (dec=" , " ) nagłówki: przyjęcie, że pierwszy wiersz jest nagłówkiem (header=T; T dla domyślnie TRUE / lub F dla domyślnie od FALSE); opcje mogą być wpisywane w dowolnej kolejności.
13 Wczytywanie danych wejściowych z pliku csvdane5<-read.csv("X:/daneR/dane.csv", header=TRUE, sep=";",dec=".") Opcje: separator danych: średnik (sep=";"), tabulacja (sep=„/t"); spacja (sep=" ") oznaczenie znaku dziesiętnego: kropka (dec=". "), przecinek (dec=" , " ) nagłówki: przyjęcie, że pierwszy wiersz jest nagłówkiem (header=T; T dla domyślnie TRUE / lub F dla domyślnie od FALSE); opcje mogą być wpisywane w dowolnej kolejności.
14 Wczytywanie danych wejściowych z pliku ExcelowegoNależy zainstalować pakiet RODBC Przykład library(RODBC) setwd("d:/Jarek/Jezyk R/SSN") dane <- odbcConnectExcel("WE.xls") WE <- sqlQuery(dane, "select * from [Arkusz1$]") UWAGA : Można też zainstalować pakiet xlsReadWrite
15 Wczytywanie danych wejściowych za pomocą programu R Commander (pakiet Rcmdr)
16 Typy danych Typ liczbowy
17 Typy danych Wektor Wektor to ciąg liczb, łańcuchów tekstowych lub wartości logicznych prawda / fałsz. Najpopularniejszym konstruktorem (funkcją tworzącą obiekt danego typu) wektora jest funkcja: c(wartości ciągu , oddzielone przecinkami)
18 Typy danych Wektor – inne konstruktory (2)
19 Typy danych Wektor – inne konstruktory (2)Funkcja seq również zwraca sekwencję liczb z przedziału (a bardziej precyzyjnie ciąg arytmetyczny)
20 Typy danych Wektor – inne konstruktory (3)Wektor losowych liczb z określonego przedziału i o zadanej długości:
21 Typy danych Wektor – inne konstruktory (4)Replikacja
22 Typy danych Typ czynnikowy (wyliczeniowy)Ten typ jest przydatny do przechowywania wektorów wartości występujących na kilku poziomach (w kilku kategoriach). Przykładowo płeć występuje na dwóch poziomach, tzn. może przyjmować tylko dwie wartości
23 Typy danych lista Podobnie jak wektor, lista to również uporządkowany zbiór elementów. W przeciwieństwie do wektora, elementy Listy mogą mieć różne typy.
24 Typy danych lista Podobnie jak wektor, lista to również uporządkowany zbiór elementów. W przeciwieństwie do wektora, elementy Listy mogą mieć różne typy.
25 Typy danych Tablica Tablica to obiekt zawierający grupę elementów tego samego typu. Tym co odróżnia tablicę od wektorów jest fakt, iż elementy tablicy mogą być indeksowane w jednym lub więcej wymiarach. Do stworzenia tablicy służy funkcja array (dane_początkowe, wymiary).
26 Typy danych Tablica Do określenia wymiarów tablicy służą komendy: dim, nrow, ncol
27 Typy danych Macierz Macierz to tablica dwuwymiarowa. Do stworzenia tablicy służy funkcja : matrix (dane_początkowe, wymiary)
28 Typy danych Macierz Użycie parametru byrow umożliwia zmianę sposobu wpisywania danych na „wiersz po wierszu".
29 Typy danych Macierz - operatory%*% — operator mnożenia macierzy.
30 Typy danych Macierz - operatorydet ( ) — obliczenie wyznacznika macierzy kwadratowej.
31 Typy danych Macierz - operatorysolve (A) — macierz odwrotna do nieosobliwej macierzy kwadratowej A.
32 Typy danych Macierz - operatoryt (A) — macierz transponowana.
33 Typy danych Tabela danych (ramka danych)Szczególnym typem obiektu jest ramka danych, którą można traktować jak listę wektorów o tej samej długości. Ramka danych może być wyświetlana jako macierz, w której elementy w kolumnie są tego samego typu, ale mogą różnić się typem pomiędzy kolumnami. Konstruktorem ramki danych jest funkcja: data.frame ().
34 Typy danych Funkcje sprawdzające typ danychW pakiecie gdata funkcje: class() oraz is.what()
35 Typy danych Konwersja typu zmiennejas.numeric(base) Konwersja na wartość liczbową. as.integer(base) Konwersja na wartość całkowitoliczbową. as.double(base) Konwersja na wartość rzeczywistą. as.logical(base) Konwersja na wartość logiczną. as.character(base) Konwersja na typ znakowy. as.factor(base) Konwersja na typ wyliczeniowy. as.list(base) Konwersja do listy. unlist(base) Konwersja z listy do wektora. as.matrix(base) Konwersja na macierz. as.data.frame(base) Konwersja na ramkę danych.
36 Operatory Rodzaje operatorów w R+,-,*, /, ^ Standardowe operatory arytmetyczne. Oba argumenty powinny mieć taki sam wymiar (macierze lub wektory). %x% Iloczyn Kroneckera dwóch macierzy. %% Reszta modulo z dzielenia. %/% Dzielenie całkowite %*% Iloczyn dwóch macierzy. <,==,>,<=,>=,!= Standardowe operatory porównywania wartości liczbowych. ! operator negacji. &,&&, I, II Logiczny iloczyn oraz logiczna suma. any(), all() Logiczna suma(iloczyn) wszystkich elementów wektora.
37 Operatory Operatory & i I a && i I IOperatory & i | służą do wykonywania operacji na listach lub wektorach, podczas gdy && i || na pojedynczych wartościach,
38 Operatory Instrukcje warunkoweInstrukcja if ….. else …….
39 Operatory Instrukcje warunkoweFunkcja ifelse() pozwala na wykonanie ciągu działań w zależności od wektora warunków logicznych. ifelse(war, instrl, instr2)
40 Operatory Instrukcje warunkoweW pewnych sytuacjach zbiór możliwych akcji, które chcemy wykonać jest większy niż 2. Wtedy sprawdza się instrukcja warunkowa switch() o następującej składni: switch(klucz, wartosc1 = akcjal, wartosc2 = akcja2, ...) Pierwszy argument powinien być typu znakowego lub typu czynnikowego (factor).