Bioinformatyka VI. Programowanie Języku R

Podobne dokumenty
Bioinformatyka: Wykład 4. R Elementy języka programowania

Wnioskowanie Statystyczne - Ćwiczenia Michał Marosz Monday, February 23, 2015

Funkcja sample, domyślnie generuje dane bez powtórzeń.

Funkcja sample() Funkcja sample(), domyślnie generuje dane bez powtórzeń.

Wprowadzenie do R. log(1) ## [1] 0. sqrt(3) ## [1] sin(x = 2*pi) ## [1] e-16

Programowanie Generowanie danych. Uwagi ogólne

Bioinformatyka V. Analiza Danych w Języku R

Programowanie Generowanie danych. Uwagi ogólne

Inteligentna analiza danych

Niezawodność diagnostyka systemów laboratorium. Ćwiczenie 2

Środowisko R wprowadzenie c.d. Wykład R2; Struktury danych w R c.d.

Niezawodność diagnostyka systemów laboratorium

Podstawy programowania w R - część 1

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH. Wykład 5 Kwadratowa analiza dyskryminacyjna QDA. Metody klasyfikacji oparte na rozkładach prawdopodobieństwa.

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Programowanie Komputerów

Pakiety Matematyczne - R Zestaw 2.

Przydatne sztuczki - sql. Na przykładzie postgres a.

1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów.

Programowanie obiektowe

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH

Podstawy programowania w języku C

Mgr inż. Kasietczuk Magdalena. Wydział Geodezji Górniczej i Inżynierii Środowiska Katedra Kształtowania i Ochrony Środowiska

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie. Lista zadań nr 15. Na ćwiczenia 11, 19 i 23 czerwca 2008

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

MATERIAŁY DO ZAJĘĆ II

Instalacja Pakietu R

-Instalacja R: -Instalacja RStudio:

LABORATORIM BIOINFORMATYKI

Cwiczenie 3 - Rozkłady empiryczne i. teoretyczne

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

LibreOffice Calc VBA

Podstawy programowania w języku C i C++

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

1. Prawie wszystko jest obiektem (poza nullem i 'undefined'). 3. Dostęp do metod uzyskuje się analogicznie do właściwości:

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Elementy metod numerycznych - zajęcia 9

ANALIZA STATYSTYCZNA WYNIKÓW BADAŃ

Algorytmy i struktury danych. wykład 1

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Wprowadzenie do języka Java

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Programowanie obiektowe

Inteligencja obliczeniowa Laboratorium 9: Sieci neuronowe.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Język ludzki kod maszynowy

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Platformy Programistyczne Podstawy języka Java

Pułapki liczb zmiennoprzecinkowych. Adam Sawicki asawicki.info

Konspekt do zajęć: Statystyczne metody analizy danych. Agnieszka Nowak-Brzezińska 14 maja 2012

Delphi Laboratorium 3

Bloki anonimowe w PL/SQL

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

15. Funkcje i procedury składowane PL/SQL

Programowanie C# mgr in. Dariusz Ku. p. 119A

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Szacowanie optymalnego systemu Bonus-Malus przy pomocy Pseudo-MLE. Joanna Sawicka

Java: interfejsy i klasy wewnętrzne

Pobieranie argumentów wiersza polecenia

- nawiasy kwadratowe oznaczają, że to lista

Nowa oferta edukacyjna Uniwersytetu Wrocławskiego odpowiedzią na współczesne potrzeby rynku pracy i gospodarki opartej na wiedzy

Podstawy programowania

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Klasyfikacja Support Vector Machines

Liczby losowe i pętla while w języku Python

Wstęp do Programowania 2

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy programowania skrót z wykładów:

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1 Wstęp. 2 Uruchomienie programu

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Test przykładowy 2 PAI WSB Wrocław /06/2018

Informatyka 1. Przetwarzanie tekstów

Pakiety Matematyczne - R Zestaw 1.

Wprowadzenie do środowiska

Programowanie komputerowe. Zajęcia 4

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

EGZAMIN MAGISTERSKI, czerwiec 2014 Matematyka w ekonomii i ubezpieczeniach

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Modele liniowe i mieszane na przykªadzie analizy danych biologicznych - Wykªad 1

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java.

!"#$%&&&# '()*'+*,-. /0//# 1./00% $:$ $ 2 ;$5 5 2 # ,. $5 $< $ 5;# !"!# $ ##% $!& '()!* +,$ -#% $,., $!$/# + $,#

Wstęp do programowania. Różne różności

Transkrypt:

Bioinformatyka VI Programowanie Języku R

WEKTORY R jest językiem wektorowym - wszystkie elementarne struktury danych są wektorami Nawet zmienne zawierające jeden obiekt są wektorami o długości 1

WEKTORY Podstawowe typy wektorów numeryczne (liczby podwójnej precyzji) liczby całkowite (integer) napisy (char) logiczne (TRUE/FALSE) data/czas nominalne (kategoryczne)

WEKTORY Podstawowe typy wektorów numeryczne (liczby podwójnej precyzji) liczby całkowite (integer) > c(1,2,3,4,5)->x > is.numeric(x) [1] TRUE > is.integer(x) [1] FALSE > c(1l,2l,3l,4l,5l)->i > is.numeric(i) [1] TRUE > is.integer(i) [1] TRUE >

WEKTORY numeryczne (liczby podwójnej precyzji) liczby całkowite (integer) W praktyce używany jest niemal wyłącznie typ numeryczny - operacje na liczbach całkowitych działają tak samo. > i/7 [1] 0.1428571 0.2857143 0.4285714 0.5714286 0.7142857 > x/7 [1] 0.1428571 0.2857143 0.4285714 0.5714286 0.7142857 > x %% 3 [1] 1 2 0 1 2 > i %% 3 [1] 1 2 0 1 2 > i %/% 3 [1] 0 0 1 1 1 > x %/% 3 [1] 0 0 1 1 1

WEKTORY Typ integer może przydać się przy przekazywaniu danych między modułami napisanymi w innych językach (C). Jest również domyślnie generowany przez operację `:` która tworzy sekwencje stosowaną w iteratorach > x15<-c(1,2,3,4,5) > i15<-1:5 > str(x15) num [1:5] 1 2 3 4 5 > str(i15) int [1:5] 1 2 3 4 5

WEKTORY Typ integer może przydać się przy przekazywaniu danych między modułami napisanymi w innych językach (C). Jest również domyślnie generowany przez operację `:` która tworzy sekwencje stosowaną w iteratorach > x15<-c(1,2,3,4,5) > i15<-1:5 > str(x15) num [1:5] 1 2 3 4 5 > str(i15) int [1:5] 1 2 3 4 5 > x1e6 <- 0.9999e6:1.0001e6 > str(x1e6) int [1:201] 999900 999901 999902 999903 999904 999905 999906 999907 999908 999909...

WEKTORY Nawet zmienne zawierające jeden obiekt są wektorami o długości 1 > str(x1e6) int [1:201] 999900 999901 999902 999903 999904 999905 999906 999907 999908 999909... > length(x1e6) [1] 201 > x<-1 > length(x) [1] 1 > str(1) num 1 > x[1] [1] 1

WEKTORY Tworzenie wektorów tworzenie przez użycie funkcji c() operacja `:` zastosowanie funkcji seq() > x1<-c(22,23,24,25,26) > x2<-22:26 > x3<-seq(from=22,to=26) > x3 [1] 22 23 24 25 26 > x2 [1] 22 23 24 25 26 > x1 [1] 22 23 24 25 26

WEKTORY Tworzenie wektorów tworzenie przez użycie funkcji c() operacja `:` zastosowanie funkcji seq() > x7<-1:7 > x5<-1:5 > c(x7,x5)->x75 > x75 [1] 1 2 3 4 5 6 7 1 2 3 4 5 > c(1:3,17:22,83:74)->x19 > length(x19) [1] 19 > x19 [1] 1 2 3 17 18 19 20 21 22 83 82 81 80 79 78 77 76 75 74

WEKTORY Funkcja seq() > seq(from=22,to=26) [1] 22 23 24 25 26 > seq(from=22,by=1,length.out=5) [1] 22 23 24 25 26 > seq(from=26,by=-1,length.out=5) [1] 26 25 24 23 22 > seq(from=26,by=-1.5,length.out=5) [1] 26.0 24.5 23.0 21.5 20.0 > seq(from=0.33,by=0.17,to=2.18) [1] 0.33 0.50 0.67 0.84 1.01 1.18 1.35 1.52 1.69 1.86 2.03 > seq(from=0.33,by=0.17,to=2.25) [1] 0.33 0.50 0.67 0.84 1.01 1.18 1.35 1.52 1.69 1.86 2.03 2.20

WEKTORY LOGICZNE > x10<-runif(10) > x10 [1] 0.05399084 0.53993393 0.60492961 0.17366489 0.74624543 0.39407939 0.18500973 0.92854452 0.49957395 0.02079991 > x10>0.5 [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE > as.numeric(x10>0.5) [1] 0 1 1 0 1 0 0 1 0 0 > x10>0.5 ->Mask > Mask [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE > str(mask) logi [1:10] FALSE TRUE TRUE FALSE TRUE FALSE...

WEKTORY LOGICZNE > x10<-runif(10) > x10 [1] 0.05399084 0.53993393 0.60492961 0.17366489 0.74624543 0.39407939 0.18500973 0.92854452 0.49957395 0.02079991 > x10>0.5

GENEROWANIE ROZKŁADÓW Jednorodny Beta Histogram of rnorm(1e+05, 20, 0.3) Dwumianowy Normalny > x10<-runif(10) > xbeta <- rbeta(3000,4,8) > xbern <- rbinom(30,100000,0.3333) > xnorm <- rnorm(100000,20,0.3) Frequency 0 2000 4000 6000 8000 10000 12000 19.0 19.5 20.0 20.5 21.0 rnorm(1e+05, 20, 0.3)

GENEROWANIE ROZKŁADÓW For the beta distribution see dbeta. For the binomial (including Bernoulli) distribution see dbinom. For the Cauchy distribution see dcauchy. For the chi-squared distribution see dchisq. For the exponential distribution see dexp. For the F distribution see df. For the gamma distribution see dgamma. For the geometric distribution see dgeom. (This is also a special case of the negative binomial.) For the hypergeometric distribution see dhyper. For the log-normal distribution see dlnorm. For the multinomial distribution see dmultinom. For the negative binomial distribution see dnbinom. For the normal distribution see dnorm. For the Poisson distribution see dpois. For the Student's t distribution see dt. For the uniform distribution see dunif. For the Weibull distribution see dweibull.

WYKRESY > X<-runif(100) > Y<-runif(100) > plot(x,y,col=1,cex=1,pch=1) Y 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X

> X<-runif(100) > Y<-runif(100) > plot(x,y,col=1,cex=1,pch=1) > plot(x,y,col=1,cex=2,pch=1) WYKRESY 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X Y 0.0 0.2 0.4 0.6 0.8 1.0 Y 0.0 0.2 0.4 0.6 0.8 1.0 X

> X<-runif(100) > Y<-runif(100) > plot(x,y,col=1,cex=1,pch=1) > plot(x,y,col=1,cex=2,pch=1) > plot(x,y,col=1,cex=2,pch=2) WYKRESY 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X Y 0.0 0.2 0.4 0.6 0.8 1.0 Y Y 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X 0.0 0.2 0.4 0.6 0.8 1.0 X

> X<-runif(100) > Y<-runif(100) > plot(x,y,col=1,cex=1,pch=1) > plot(x,y,col=1,cex=2,pch=1) > plot(x,y,col=1,cex=2,pch=1) WYKRESY 0.0 0.2 0.4 0.6 0.8 1.0 > plot(x,y,col=1,cex=2,pch=1) 0.0 0.2 0.4 0.6 0.8 1.0 X Y 0.0 0.2 0.4 0.6 0.8 1.0 Y 0.0 0.2 0.4 0.6 0.8 1.0 Y Y 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X 0.0 0.2 0.4 0.6 0.8 1.0 X 0.0 0.2 0.4 0.6 0.8 1.0 X

WYKRESY > X1<-runif(100) > Y1<-runif(100) > Y2<-runif(100) > X2<-runif(100) > X3<-runif(100) > Y3<-runif(100) > plot(x,y,col=1,cex=2,pch=1) Y 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X

> X1<-runif(100) > Y1<-runif(100) > Y2<-runif(100) > X2<-runif(100) > X3<-runif(100) > Y3<-runif(100) > plot(x,y,col=1,cex=2,pch=1) > points(x1,y1,col=2,cex=2,pch=2) WYKRESY Y 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X

> X1<-runif(100) > Y1<-runif(100) > Y2<-runif(100) > X2<-runif(100) > X3<-runif(100) > Y3<-runif(100) > plot(x,y,col=1,cex=2,pch=1) > points(x1,y1,col=2,cex=2,pch=2) > points(x2,y2,col=3,cex=2,pch=3) > points(x3,y3,col=4,cex=2,pch=4) WYKRESY Y 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 X

WYKRESY > plot( + seq(from=-6,to=6,by=0.01), + dnorm(seq(from=-6,to=6,by=0.01)),cex=0.1)

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

WYKRESY > plot( + seq(from=-6,to=6,by=0.01), + dnorm(seq(from=-6,to=6,by=0.01)),cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),3),col=2,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),6),col=3,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),12),col=4,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),24),col=5,cex=0.1)

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

WYKRESY > plot( + seq(from=-6,to=6,by=0.01), + dnorm(seq(from=-6,to=6,by=0.01)),cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),3),col=2,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),6),col=3,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),12),col=4,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),24),col=5,cex=0.1)

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

WYKRESY > plot( + seq(from=-6,to=6,by=0.01), + dnorm(seq(from=-6,to=6,by=0.01)),cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),3),col=2,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),6),col=3,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),12),col=4,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),24),col=5,cex=0.1)

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

0.3 0.2 0.1 0.0 dnorm(seq(from = -6, to = 6, by = 0.01)) 0.4 ROZKŁAD NORMALNY I STUDENTA -6-4 -2 0 2 4 6 seq(from = -6, to = 6, by = 0.01) Warszawa 16.05.2015

WYKRESY > plot( + seq(from=-6,to=6,by=0.01), + dnorm(seq(from=-6,to=6,by=0.01)),cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),3),col=2,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),6),col=3,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),12),col=4,cex=0.1) > points( + seq(from=-6,to=6,by=0.01), + dt(seq(from=-6,to=6,by=0.01),24),col=5,cex=0.1)

0.3 0.2 0.1 0.0 dnorm(seq(from = -6, to = 6, by = 0.01)) 0.4 ROZKŁAD NORMALNY I STUDENTA -6-4 -2 0 2 4 6 seq(from = -6, to = 6, by = 0.01) Warszawa 16.05.2015

0.3 0.2 0.1 0.0 dnorm(seq(from = -6, to = 6, by = 0.01)) 0.4 ROZKŁAD NORMALNY I STUDENTA -6-4 -2 0 2 4 6 seq(from = -6, to = 6, by = 0.01) Warszawa 16.05.2015

ROZKŁAD NORMALNY I STUDENTA dnorm(seq(from = -6, to = 6, by = 0.01)) 0.0 0.1 0.2 0.3 0.4-6 -4-2 0 2 4 6 seq(from = -6, to = 6, by = 0.01)

WEKTORY LOGICZNE > x10<-runif(10) > x10 [1] 0.05399084 0.53993393 0.60492961 0.17366489 0.74624543 0.39407939 0.18500973 0.92854452 0.49957395 0.02079991 > x10>0.5 [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE > x10>0.5 ->Mask > Mask [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE > str(mask) logi [1:10] FALSE TRUE TRUE FALSE TRUE FALSE...

WEKTORY LOGICZNE > x10>0.5 ->Mask > Mask [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE > str(mask) logi [1:10] FALSE TRUE TRUE FALSE TRUE FALSE... > as.numeric(mask) [1] 0 1 1 0 1 0 0 1 0 0 > sum(mask) [1] 4 >

WEKTORY LOGICZNE > x10[mask] [1] 0.5399339 0.6049296 0.7462454 0.9285445 > x10[x10>0.5] [1] 0.5399339 0.6049296 0.7462454 0.9285445 > which(mask) [1] 2 3 5 8 > which(x10>0.5) [1] 2 3 5 8

WEKTORY ZNAKOWE > napis<-"bioinformatyka" > napis [1] "Bioinformatyka" > napis2<c("b","i","o","i","n","f","o","r","m","a","t","y","k","a") > napis2 [1] "B" "i" "o" "i" "n" "f" "o" "r" "m" "a" "t" "y" "k" "a" > napis3<-c("bio","in","for","ma","ty","ka") > napis3 [1] "Bio" "in" "for" "ma" "ty" "ka"

WEKTORY ZNAKOWE > str(napis) chr "Bioinformatyka" > str(napis2) chr [1:14] "B" "i" "o" "i" "n" "f" "o" "r" "m" "a" "t" "y" "k" "a" > str(napis3) chr [1:6] "Bio" "in" "for" "ma" "ty" "ka" > napis2[3] [1] "o" > napis3[3] [1] "for" > napis[3] [1] NA

WEKTORY ZNAKOWE > napis4<-c("b","io","inf","orma","tyka ") > napis4 [1] "B" "io" "inf" "orma" "tyka " > str(napis4) chr [1:5] "B" "io" "inf" "orma" "tyka > napis2 [1] "B" "i" "o" "i" "n" "f" "o" "r" "m" "a" "t" "y" "k" "a" > paste(napis2,collapse="") [1] "Bioinformatyka" > paste(napis2,collapse=" ") [1] "B i o i n f o r m a t y k a" > paste(napis2,collapse="-") [1] "B-i-o-i-n-f-o-r-m-a-t-y-k-a"

WEKTORY ZNAKOWE > AA<-c("a","aa","aaa","aaaa","aaaaa","aaaaaa") > BB<-c("b","bb") > paste(aa,bb) [1] "a b" "aa bb" "aaa b" "aaaa bb" [5] "aaaaa b" "aaaaaa bb" > paste(aa,bb,sep="-") [1] "a-b" "aa-bb" "aaa-b" [5] "aaaa-bb" "aaaaa-b" "aaaaaa-bb" > paste(aa,nb,sep="-",collapse=" ") [1] "a-b aa-bb aaa-b aaaa-bb aaaaa-b aaaaaa-bb" > paste(aa,bb,sep="-",collapse="") [1] "a-baa-bbaaa-baaaa-bbaaaaa-baaaaaa-bb"

CZAS >> Sys.time() [1] "2015-05-17 12:23:11 CEST" > options(digits.secs=2) > Sys.time() [1] "2015-05-17 12:23:42.87 CEST"

CZAS > start.time<-sys.time() > end.time<-sys.time() > start.time [1] "2015-05-17 12:24:44.56 CEST" > end.time [1] "2015-05-17 12:24:53.26 CEST" > end.time-start.time Time difference of 8.698818 secs > as.numeric(end.time-start.time) [1] 8.698818

> z <- as.posixlt(sys.time()) > zz <- Sys.time() > z [1] "2015-05-17 13:12:30.37 CEST" > zz [1] "2015-05-17 13:12:39.48 CEST" > unclass(zz) [1] 1431861159 > unclass(z) $sec [1] 30.37641 $min [1] 12 $hour [1] 13 $mday [1] 17 $mon [1] 4 $year [1] 115 $wday [1] 0 $yday [1] 136 $isdst [1] 1 attr(,"tzone") [1] "" "CET" "CEST" CZAS

CZAS > z <- as.posixlt(sys.time()) > zz <- Sys.time() > z [1] "2015-05-17 13:12:30.37 CEST" > zz [1] "2015-05-17 13:12:39.48 CEST" > unclass(zz) [1] 1431861159 > unlist(unclass(z)) sec min hour mday mon year 30.37641 12.00000 13.00000 17.00000 4.00000 115.00000 wday yday isdst 0.00000 136.00000 1.00000

CZAS > z [1] "2015-05-17 13:12:30.37 CEST" > zz [1] "2015-05-17 13:12:39.48 CEST" > unclass(zz) [1] 1431861159 > unlist(unclass(z)) sec min hour mday mon year 30.37641 12.00000 13.00000 17.00000 4.00000 115.00000 wday yday isdst 0.00000 136.00000 1.00000 > unclass(zz) [1] 1431861159 > unclass(zz)-1431861159 [1] 0.4873409

Class "POSIXct" represents the (signed) number of seconds since the beginning of 1970 as a numeric vector. CZAS Class "POSIXlt" is a named list of vectors represenlng sec 0 61: seconds min 0 59: minutes hour 0 23: hours mday 1 31: day of the month mon 0 11: months aoer the first of the year. year Years since 1900. wday 0 6 day of the week, starlng on Sunday. yday 0 365: day of the year. isdst Daylight savings lme flag. Posilve if in force, zero if not, negalve if unknown.

CZAS > MyTime_1 [1] "2015-07-10 11:00:00 Europe/Warsaw" > MyTime_2 [1] "2015-07-10 11:00:00" > MyTime_3 [1] "2015-07-10 11:00:00 UTC > as.posixct(mytime_1) [1] "2015-07-10 11:00:00 CEST" > as.posixct(mytime_2) [1] "2015-07-10 11:00:00 CEST" > as.posixct(mytime_3) [1] "2015-07-10 11:00:00 CEST"

CZAS > MyTime_1 [1] "2015-07-10 11:00:00 Europe/Warsaw" > MyTime_2 [1] "2015-07-10 11:00:00" > MyTime_3 [1] "2015-07-10 11:00:00 UTC" > > as.posixlt(mytime_3) [1] "2015-07-10 11:00:00" > as.posixlt(mytime_2) [1] "2015-07-10 11:00:00" > as.posixlt(mytime_1) [1] "2015-07-10 11:00:00"

CZAS > as.posixct(mytime_1,tz="utc") [1] "2015-07-10 11:00:00 UTC" > as.posixct(mytime_1,tz="europe/london") [1] "2015-07-10 11:00:00 BST" > as.posixct(mytime_1,tz="europe/warsaw") [1] "2015-07-10 11:00:00 CEST" > as.posixct(mytime_1,tz="europe/kiev") [1] "2015-07-10 11:00:00 EEST"

CZAS > as.numeric(as.posixct(mytime_1,tz="utc")) [1] 1436526000 > as.numeric(as.posixct(mytime_1,tz="utc"))-1436526000 [1] 0 > as.numeric(as.posixct(mytime_1,tz="europe/london"))-1436526000 [1] -3600 > as.numeric(as.posixct(mytime_1,tz="europe/warsaw"))-1436526000 [1] -7200 > as.numeric(as.posixct(mytime_1,tz="europe/kiev"))-1436526000 [1] -10800

WEKTORY NOMINALNE > str(iris) 'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1... $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1... > str(esoph) 'data.frame': 88 obs. of 5 variables: $ agegp : Ord.factor w/ 6 levels "25-34"<"35-44"<..: 1 1 1 1 1 1 1 1 1 1... $ alcgp : Ord.factor w/ 4 levels "0-39g/day"<"40-79"<..: 1 1 1 1 2 2 2 2 3 3... $ tobgp : Ord.factor w/ 4 levels "0-9g/day"<"10-19"<..: 1 2 3 4 1 2 3 4 1 2... $ ncases : num 0 0 0 0 0 0 0 0 0 0... $ ncontrols: num 40 10 6 5 27 7 4 7 2 1...

WEKTORY NOMINALNE > levels(iris$species) [1] "setosa" "versicolor" "virginica" > levels(esoph$agegp) [1] "25-34" "35-44" "45-54" "55-64" "65-74" "75+" > levels(esoph$alcgp) [1] "0-39g/day" "40-79" "80-119" "120+" > levels(esoph$tobgp) [1] "0-9g/day" "10-19" "20-29" "30+"

WEKTORY NOMINALNE > as.numeric(esoph$agegp) [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 [34] 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 [67] 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 > as.numeric(esoph$alcgp) [1] 1 1 1 1 2 2 2 2 3 3 3 4 4 4 4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 1 1 1 [34] 1 2 2 2 2 3 3 3 3 4 4 4 4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 1 1 1 1 [67] 2 2 2 3 3 3 3 4 4 4 4 1 1 1 2 2 2 2 3 3 4 4 > as.numeric(esoph$tobgp) [1] 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 1 2 3 [34] 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 [67] 1 2 3 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 1 2 1 2 >

WEKTORY NOMINALNE > oceny<-c("3","3.5","3","5","5","5","4","4","2","4.5") > as.factor(oceny)->oceny > oceny [1] 3 3.5 3 5 5 5 4 4 2 4.5 Levels: 2 3 3.5 4 4.5 5 > as.numeric(oceny) [1] 2 3 2 6 6 6 4 4 1 5 >

WEKTORY NOMINALNE > oceny<c("dobry","dobry","dostateczny","niedostateczny","dostateczny +","bardzo dobry","bardzo dobry","bardzo dobry","dobry +","dostateczny +") > as.factor(oceny)->oceny > oceny [1] dobry dobry dostateczny niedostateczny [5] dostateczny + bardzo dobry bardzo dobry bardzo dobry [9] dobry + dostateczny + 6 Levels: bardzo dobry dobry dobry + dostateczny... niedostateczny > as.numeric(oceny) [1] 2 2 4 6 5 1 1 1 3 5 > levels(oceny) [1] "bardzo dobry" "dobry" "dobry +" [4] "dostateczny" "dostateczny +" "niedostateczny"

MACIERZE > 1:60->M2d > dim(m2d)<-c(6,10) > M2d [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 7 13 19 25 31 37 43 49 55 [2,] 2 8 14 20 26 32 38 44 50 56 [3,] 3 9 15 21 27 33 39 45 51 57 [4,] 4 10 16 22 28 34 40 46 52 58 [5,] 5 11 17 23 29 35 41 47 53 59 [6,] 6 12 18 24 30 36 42 48 54 60

MACIERZE > dim(m2d)<-c(10,6) > M2d [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 11 21 31 41 51 [2,] 2 12 22 32 42 52 [3,] 3 13 23 33 43 53 [4,] 4 14 24 34 44 54 [5,] 5 15 25 35 45 55 [6,] 6 16 26 36 46 56 [7,] 7 17 27 37 47 57 [8,] 8 18 28 38 48 58 [9,] 9 19 29 39 49 59 [10,] 10 20 30 40 50 60

MACIERZE > M2d[3] [1] 3 > M2d[,3] [1] 21 22 23 24 25 26 27 28 29 30 > M2d[3,] [1] 3 13 23 33 43 53 > colnames(m2d)<-c("x1","x2","x3","x4","x5","x6") > M2d[,"x3"] [1] 21 22 23 24 25 26 27 28 29 30

MACIERZE > M3d<-1:60 > dim(m3d)<-c(4,5,3) > M3d,, 1 [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20,, 2 [,1] [,2] [,3] [,4] [,5] [1,] 21 25 29 33 37 [2,] 22 26 30 34 38 [3,] 23 27 31 35 39 [4,] 24 28 32 36 40,, 3 [,1] [,2] [,3] [,4] [,5] [1,] 41 45 49 53 57 [2,] 42 46 50 54 58 [3,] 43 47 51 55 59 [4,] 44 48 52 56 60

MACIERZE > M3d[3] [1] 3 > M3d[3,,] [,1] [,2] [,3] [1,] 3 23 43 [2,] 7 27 47 [3,] 11 31 51 [4,] 15 35 55 [5,] 19 39 59,, 1 [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20,, 2 [,1] [,2] [,3] [,4] [,5] [1,] 21 25 29 33 37 [2,] 22 26 30 34 38 [3,] 23 27 31 35 39 [4,] 24 28 32 36 40,, 3 [,1] [,2] [,3] [,4] [,5] [1,] 41 45 49 53 57 [2,] 42 46 50 54 58 [3,] 43 47 51 55 59 [4,] 44 48 52 56 60

MACIERZE > M3d[3] [1] 3 > M3d[,3,] [,1] [,2] [,3] [1,] 9 29 49 [2,] 10 30 50 [3,] 11 31 51 [4,] 12 32 52,, 1 [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20,, 2 [,1] [,2] [,3] [,4] [,5] [1,] 21 25 29 33 37 [2,] 22 26 30 34 38 [3,] 23 27 31 35 39 [4,] 24 28 32 36 40,, 3 [,1] [,2] [,3] [,4] [,5] [1,] 41 45 49 53 57 [2,] 42 46 50 54 58 [3,] 43 47 51 55 59 [4,] 44 48 52 56 60

MACIERZE > M3d[3] [1] 3 > M3d[,,3] [,1] [,2] [,3] [,4] [,5] [1,] 41 45 49 53 57 [2,] 42 46 50 54 58 [3,] 43 47 51 55 59 [4,] 44 48 52 56 60,, 1 [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20,, 2 [,1] [,2] [,3] [,4] [,5] [1,] 21 25 29 33 37 [2,] 22 26 30 34 38 [3,] 23 27 31 35 39 [4,] 24 28 32 36 40,, 3 [,1] [,2] [,3] [,4] [,5] [1,] 41 45 49 53 57 [2,] 42 46 50 54 58 [3,] 43 47 51 55 59 [4,] 44 48 52 56 60

NAZWY W WEKTORACH > str(islands) Named num [1:48] 11506 5500 16988 2968 16... - attr(*, "names")= chr [1:48] "Africa" "Antarctica" "Asia" "Australia"... > islands[1:6] Africa Antarctica Asia Australia 11506 5500 16988 2968 Axel Heiberg Baffin 16 184

NAZWY W WEKTORACH > names(sort(islands,decreasing=true))[1:10] [1] "Asia" "Africa" "North America" [4] "South America" "Antarctica" "Europe" [7] "Australia" "Greenland" "New Guinea" [10] "Borneo"

NAZWY W WEKTORACH > names(sort(islands,decreasing=true))[1:10] [1] "Asia" "Africa" "North America" [4] "South America" "Antarctica" "Europe" [7] "Australia" "Greenland" "New Guinea" [10] "Borneo" > sort(islands,decreasing=true)[1:10] Asia Africa North America South America 16988 11506 9390 6795 Antarctica Europe Australia Greenland 5500 3745 2968 840 New Guinea Borneo 306 280

NAZWY W WEKTORACH > names(sort(islands,decreasing=true))[1:10] [1] "Asia" "Africa" "North America" [4] "South America" "Antarctica" "Europe" [7] "Australia" "Greenland" "New Guinea" [10] "Borneo" >sort(islands,decreasing=true)[8:17] Greenland New Guinea Borneo Madagascar Baffin 840 306 280 227 184 Sumatra Honshu Britain Ellesmere Victoria 183 89 84 82 82

FUNKCJE AddTwoNumbers<-function(x,y){ print(x) print(y) z<-x+y print(z) return(z) } > AddTwoNumbers(2,44) [1] 2 [1] 44 [1] 46 [1] 46 >

FUNKCJE MyAvg<-function(x,y){ a1<-(x+y)/2 a2<-sqrt(x*y) a3<-2/(1/x+1/y) return(list(arithmetic=a1,geometric=a2,harmonic=a3)) } > MyAvg(3,1) $arithmetic [1] 2 $geometric [1] 1.732051 $harmonic [1] 1.5

FUNKCJE MyAvg<-function(x=5,y=11){ a1<-(x+y)/2 a2<-sqrt(x*y) a3<-2/(1/x+1/y) return(list(arithmetic=a1,geometric=a2,harmonic=a3)) } > MyAvg() $arithmetic [1] 8 $geometric [1] 7.416198 $harmonic [1] 6.875

FUNKCJE Nie modyfikują argumentów Tworzą wewnętrzne kopie danych Nie mają efektów ubocznych Mogą przyjmować argumenty domyślne Mogą przyjmować argumenty niezdefiniowane dla danej funkcji > MyAvg(25,1,col=3) Błąd w MyAvg(25, 1, col = 3) : nieużywane argument(y) (col = 3)

FUNKCJE Mogą przyjmować argumenty niezdefiniowane dla danej funkcji MyAvg<-function(x,y,...){ a1<-(x+y)/2 a2<-sqrt(x*y) a3<-2/(1/x+1/y) return(list(arithmetic=a1,geometric=a2,harmonic=a3)) } > MyAvg(25,1) $arithmetic [1] 13 $geometric [1] 5 $harmonic [1] 1.923077

FUNKCJE Mogą przyjmować argumenty niezdefiniowane dla danej funkcji MyAvg<-function(x,y,...){ a1<-(x+y)/2 a2<-sqrt(x*y) a3<-2/(1/x+1/y) return(list(arithmetic=a1,geometric=a2,harmonic=a3)) } > MyAvg(25,1,col=3) $arithmetic [1] 13 $geometric [1] 5 $harmonic [1] 1.923077

WEJSCIE / WYJŚCIE "Sepal.Length";"Sepal.Width";"Petal.Length";"Petal.Width";"Species" > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa > write.table(iris,file="iris.csv",sep=";") > system("head -5 iris.csv ) "1";5.1;3.5;1.4;0.2;"setosa" "2";4.9;3;1.4;0.2;"setosa" "3";4.7;3.2;1.3;0.2;"setosa" "4";4.6;3.1;1.5;0.2;"setosa" "5";5;3.6;1.4;0.2;"setosa"

WEJSCIE / WYJŚCIE > read.table(file="iris.csv",sep=";",header=true)->newiris > head(newiris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa >

WEJSCIE / WYJŚCIE > save(newiris,file="iris.rd") > rm(newiris) > ls() [1] "Iris" "iris.lm" "iris10" "MyAvg" "MySample" "rownames" "student1" "student2" [9] "team1" "Team2" "test" > load("iris.rd") > ls() [1] "Iris" "iris.lm" "iris10" "MyAvg" "MySample" "newiris" "rownames" "student1" [9] "student2" "team1" "Team2" "test"