• Nie Znaleziono Wyników

Wykład 6

N/A
N/A
Protected

Academic year: 2021

Share "Wykład 6"

Copied!
79
0
0

Pełen tekst

(1)

Bioinformatyka   VI

Programowanie  Języku  R  

(2)

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  

(3)

WEKTORY

• Podstawowe  typy  wektorów  

• numeryczne  (liczby  podwójnej  precyzji)  

• liczby  całkowite  (integer)  

• napisy  (char)  

• logiczne  (TRUE/FALSE)  

• data/czas    

• nominalne  (kategoryczne)  

(4)

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

>

(5)

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

(6)

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

(7)

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 ...

(8)

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

(9)

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

(10)

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

(11)

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

(12)

> 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

(13)

> 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

WEKTORY  LOGICZNE

(14)

GENEROWANIE  ROZKŁADÓW

• Jednorodny  

• Beta  

• Dwumianowy  

• Normalny  

• …

> x10<-runif(10)

> xbeta <- rbeta(3000,4,8)

> xbern <- rbinom(30,100000,0.3333)

> xnorm <- rnorm(100000,20,0.3)

Histogram of rnorm(1e+05, 20, 0.3)

rnorm(1e+05, 20, 0.3)

Frequency

19.0 19.5 20.0 20.5 21.0

020004000600080001000012000

(15)

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.

(16)

WYKRESY

> X<-runif(100)

> Y<-runif(100)

> plot(X,Y,col=1,cex=1,pch=1)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(17)

WYKRESY

> X<-runif(100)

> Y<-runif(100)

> plot(X,Y,col=1,cex=1,pch=1)

> plot(X,Y,col=1,cex=2,pch=1)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(18)

WYKRESY

> 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)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(19)

WYKRESY

> 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)

> plot(X,Y,col=1,cex=2,pch=1) 0.0 0.0 0.2 0.4 0.6 0.8 1.0

0.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(20)

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)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(21)

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)

> points(X1,Y1,col=2,cex=2,pch=2)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(22)

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)

> points(X1,Y1,col=2,cex=2,pch=2)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

> 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)

0.0 0.2 0.4 0.6 0.8 1.0

0.00.20.40.60.81.0

X

Y

(23)

WYKRESY

> plot(

+ seq(from=-6,to=6,by=0.01),

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

!

!

!

!

!

!

!

!

!

!

!

!

!

!

(24)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(25)

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)

!

!

(26)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(27)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(28)

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)

!

!

(29)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(30)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(31)

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)

!

!

(32)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(33)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(34)

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)

!

!

(35)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(36)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(37)

ROZKŁAD  NORMALNY  I  STUDENTA

-6 -4 -2 0 2 4 6

0.00.10.20.30.4

seq(from = -6, to = 6, by = 0.01)

dnorm(seq(from = -6, to = 6, by = 0.01))

(38)

> 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

(39)

> 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

(40)

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

(41)

> 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

(42)

> 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

(43)

> 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

(44)

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"

(45)

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"

(46)

> 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

CZAS

(47)

> 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

(48)

> 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

(49)

> 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

CZAS

(50)

Class  "POSIXct"  represents  the  (signed)  number  of  seconds  since  the   beginning  of  1970  as  a  numeric  vector.    

!

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

(51)

> 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

(52)

> 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

(53)

> 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

(54)

> 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

CZAS

(55)

> 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

(56)

> 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

(57)

> 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

(58)

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

>

(59)

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"

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

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"

!

(69)

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

(70)

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

!

(71)

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

>

(72)

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

!

(73)

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

(74)

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)

(75)

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

(76)

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

(77)

WEJSCIE  /  WYJŚCIE

> 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”)

"Sepal.Length";"Sepal.Width";"Petal.Length";"Petal.Width";"Species"

"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"

(78)

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

>

(79)

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"

Cytaty

Powiązane dokumenty

ANNALES SOCIETATIS MATHEMATICAE POLONAE Series I: COMMENTATIONES MATHEMATICAE XXII (1981) ROCZNIK1 POLSKIEGO TOWARZYSTWA MATEMATYCZNEGOJ. Séria I: PRACE MATEMATYCZNE

The p-variate γ-order Normal distribution, denoted by N γ p (µ, Σ), is an multi- variate exponential-power generalization of the usual Normal distribution, con- structed to play

books, bandages, skirt, water, gloves, pineapple, toys, top, soap, t-shirt, socks, shirt, sweatshirt, scarf, jeans, boots, sandals, flip-flops, map, bananas, jacket, sweets,

Obszar 1 odnosi się do wspomagania systemu informacyjnego (SI) i obej- muje technologie, które umożliwiają obsługę procesów informacyjnych związa- nych z czynnościami

w tym aspekcie, czy 2-letnia karencja dotyczy tylko tej izby, w okręgu której osoba ubiegająca się o wpis bezpośrednio przed złożeniem wniosku wykonywała

At that time the binomial distribution does not precisely reflect the probability of number of bad pieces, especially when k — 0. The reasons are given that the p(a)

Kopoci´ nski [3] introduced BVNB distributions using Poisson independent random variables mixed by a Marshall–Olkin bivariate exponential distribution [4].. In this paper we

Właściwa jest przecież epokom cywilizacyjnych kryzysów i przesileń, mo­ bilności całych populacji, pow staw ania i rozpadania się imperiów, pogrążania się