W niniejszym pliku przedstawiono zawartość całego opracowania - razem 14 rozdziałów.
Bezpośrednio po wskazanych komendach podany jest wynik otrzymywany w programie R.
Po lewej stronie zamieszczono menu pozwalające wygodnie przemieszczać się po wyróżnionych tematach.
We wszystkich obszarach z kodem R umieszczono przyciski pozwalające na wygodne kopiowanie kodu i następnie wklejanie go do programu R.
- Podstawy pracy z programem R
- Struktury danych
- Instrukcje warunkowe oraz pętle
- Funkcje i operacje matematyczne oraz statystyczne
- Import i eksport danych. Wykresy. Zmienne losowe
- Wizualizacja z pakietem lattice
- Model liniowy
- Weryfikacja hipotez i pakiet dplyr
- Pakiet ggplot2. Podstawy konstrukcji wykresów
- Pakiet patchwork
- Pakiety ggplot2 i gapminder. Podstawy animacji
- Animacje dla rzeczywistych danych z BDL
- Interaktywny dashboard z pakietem shiny
- Uczenie maszynowe z pakietem mlr3
# To jest komentarz. Komentarze rozpoczynamy znakiem #
## tak oznaczane będą wyniki wykonanych poleceń
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
# Ctrl+R - wykonanie kodu z edytora R
?plot
## uruchamianie serwera httpd dla pomocy ... wykonano
# install.packages("ggplot2")
# można też zapisać
# install.packages('ggplot2')
library(ggplot2)
## Warning: pakiet 'ggplot2' został zbudowany w wersji R 4.2.3
# ls('package:ggplot2')
2+2
## [1] 4
20-2
## [1] 18
6*7
## [1] 42
30/5
## [1] 6
# 30\5 błąd, bo ukośnik jest w przeciwną stronę
2^5
## [1] 32
sqrt(4)
## [1] 2
log(12)
## [1] 2.484907
log(16,2)
## [1] 4
pi
## [1] 3.141593
sin(pi)
## [1] 1.224606e-16
choose(4,1)
## [1] 4
round(2.4347247)
## [1] 2
round(2.55)
## [1] 3
round(2.4347247,digits=2)
## [1] 2.43
x=7
x
## [1] 7
print(x)
## [1] 7
y<-10
y
## [1] 10
z=x*y
z
## [1] 70
z=x+y
z
## [1] 17
x;y;z
## [1] 7
## [1] 10
## [1] 17
ls()
## [1] "x" "y" "z"
rm(z)
ls()
## [1] "x" "y"
rm(list=ls())
ls()
## character(0)
n1=2.4535
n1
## [1] 2.4535
print(n1,3) #wyświetlenie 3 cyfr znaczących (ostatni element jest zaokrąglany)
## [1] 2.45
round(n1,3)
## [1] 2.454
t1="Patrycja"
t1
## [1] "Patrycja"
t2='Dawid'
t2
## [1] "Dawid"
print(t2,quote=FALSE)
## [1] Dawid
t3="to jest pies"
sub("pies","kot",t3)
## [1] "to jest kot"
paste(t1,"i",t2)
## [1] "Patrycja i Dawid"
substr(t3,9,12) #wyodrębnianie tekstu - od 9 znaku do 12
## [1] "pies"
l1=TRUE
l2=T
l3=FALSE
F
## [1] FALSE
l1|l3
## [1] TRUE
l1&l3
## [1] FALSE
!l1
## [1] FALSE
1==1
## [1] TRUE
2>3
## [1] FALSE
25<=25
## [1] TRUE
23>=7
## [1] TRUE
(12>2)&(15==12)
## [1] FALSE
(sqrt(159)==13)&(7^5>252)
## [1] FALSE
class(t1)
## [1] "character"
class(n1)
## [1] "numeric"
identical(t1,n1)
## [1] FALSE
ls()
## [1] "l1" "l2" "l3" "n1" "t1" "t2" "t3"
ls.str()
## l1 : logi TRUE
## l2 : logi TRUE
## l3 : logi FALSE
## n1 : num 2.45
## t1 : chr "Patrycja"
## t2 : chr "Dawid"
## t3 : chr "to jest pies"
is.logical(t1)
## [1] FALSE
is.numeric(t1)
## [1] FALSE
is.character(t1)
## [1] TRUE
is.matrix(t1)
## [1] FALSE
w1=c(10,9,8,7,6,5)
w1
## [1] 10 9 8 7 6 5
w2=c(T,T,F,F)
w2
## [1] TRUE TRUE FALSE FALSE
w3=c("Dawid","Wojtek","Robert","Kuba","Klaudia","Luiza")
w3
## [1] "Dawid" "Wojtek" "Robert" "Kuba" "Klaudia" "Luiza"
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
10:1
## [1] 10 9 8 7 6 5 4 3 2 1
1.2:20.2
## [1] 1.2 2.2 3.2 4.2 5.2 6.2 7.2 8.2 9.2 10.2 11.2 12.2 13.2 14.2 15.2
## [16] 16.2 17.2 18.2 19.2 20.2
1.2:20.3
## [1] 1.2 2.2 3.2 4.2 5.2 6.2 7.2 8.2 9.2 10.2 11.2 12.2 13.2 14.2 15.2
## [16] 16.2 17.2 18.2 19.2 20.2
1.2:20.1
## [1] 1.2 2.2 3.2 4.2 5.2 6.2 7.2 8.2 9.2 10.2 11.2 12.2 13.2 14.2 15.2
## [16] 16.2 17.2 18.2 19.2
# ?seq
seq(16,30,3)
## [1] 16 19 22 25 28
seq(to=30,by=3,from=16)
## [1] 16 19 22 25 28
w4=seq(to=30,from=16,3)
w4
## [1] 16 19 22 25 28
w5=c(23,23,1,2,3,1)
ls()
## [1] "l1" "l2" "l3" "n1" "t1" "t2" "t3" "w1" "w2" "w3" "w4" "w5"
# w1 + w3
w1;w3
## [1] 10 9 8 7 6 5
## [1] "Dawid" "Wojtek" "Robert" "Kuba" "Klaudia" "Luiza"
w1+w5
## [1] 33 32 9 9 9 6
w1*w5
## [1] 230 207 8 14 18 5
w6=seq(7,10,length=10)
w6
## [1] 7.000000 7.333333 7.666667 8.000000 8.333333 8.666667 9.000000
## [8] 9.333333 9.666667 10.000000
length(w6)
## [1] 10
any(w6<0)
## [1] FALSE
any(w6>0)
## [1] TRUE
w6>0
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
all(w1==w3)
## [1] FALSE
?rep
rep(1,100) #Powielenie 1-ki sto razy.
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
rep(c(1,2,3),3)
## [1] 1 2 3 1 2 3 1 2 3
rep("pies",2)
## [1] "pies" "pies"
rep(c(1,2,3),each=3)
## [1] 1 1 1 2 2 2 3 3 3
# Jak uzyskać wektor liczb 9 8 7 9 8 7 2 2 2 1 1 1?
# 1 sposób
x1=rep(c(9,8,7),2)
x1
## [1] 9 8 7 9 8 7
x2=rep(c(2,1),each=3)
x2
## [1] 2 2 2 1 1 1
c(x1,x2)
## [1] 9 8 7 9 8 7 2 2 2 1 1 1
# 2 sposób - kod w jednej linijce
c(rep(c(9,8,7),2),rep(c(2,1),each=3))
## [1] 9 8 7 9 8 7 2 2 2 1 1 1
?sample
s1=sample(1:7,10,replace=T)
s1
## [1] 2 1 3 4 5 3 2 3 7 4
# sample(1:7,10)
# Wykonując kod pojawi się błąd, ponieważ zbiór, z którego pobieramy liczby jest za mały.
# Wektor s2 będzie pobierał 5 liczb z wektora liczb pierwszych z przedziału od 1 do 20.
s2<-sample(c(2,3,5,7,11,13,17,19),5)
s2
## [1] 17 5 2 7 11
s3<-sample(1:4,15,prob=c(0.4,0.1,0.3,0.2),replace=T)
s3
## [1] 1 1 3 3 3 2 3 3 2 3 3 1 1 1 2
x=c(19,23,27,15,43)
x
## [1] 19 23 27 15 43
M=c(T,F,F,T,T)
M
## [1] TRUE FALSE FALSE TRUE TRUE
x[M]
## [1] 19 15 43
x[2]
## [1] 23
x[2:5]
## [1] 23 27 15 43
x[c(1,5)]
## [1] 19 43
x[length(x)]
## [1] 43
x[c(1,length(x))]
## [1] 19 43
x[-2]
## [1] 19 27 15 43
x[-c(1,3)]
## [1] 23 15 43
x[-(1:3)]
## [1] 15 43
x[4]=-1
x[-4]=0
x
## [1] 0 0 0 -1 0
x=c(19,23,27,15,43)
x
## [1] 19 23 27 15 43
x>20
## [1] FALSE TRUE TRUE FALSE TRUE
x[x>20]
## [1] 23 27 43
x=c("pop","rock","rap","rap")
class(x)
## [1] "character"
f<-factor(x)
f
## [1] pop rock rap rap
## Levels: pop rap rock
factor(x,exclude="pop")
## [1] <NA> rock rap rap
## Levels: rap rock
f=factor(x,label=c("1 gatunek","2 gatunek","3 gatunek"))
f
## [1] 1 gatunek 3 gatunek 2 gatunek 2 gatunek
## Levels: 1 gatunek 2 gatunek 3 gatunek
f1=factor(c(1,2,1,3,1,2),levels=1:4)
f1
## [1] 1 2 1 3 1 2
## Levels: 1 2 3 4
levels(f1)=c("nie podoba mi się","średnie","okej","super")
f1
## [1] nie podoba mi się średnie nie podoba mi się okej
## [5] nie podoba mi się średnie
## Levels: nie podoba mi się średnie okej super
summary(f1)
## nie podoba mi się średnie okej super
## 3 2 1 0
f1[length(f1)]="super"
f1
## [1] nie podoba mi się średnie nie podoba mi się okej
## [5] nie podoba mi się super
## Levels: nie podoba mi się średnie okej super
summary(f1)
## nie podoba mi się średnie okej super
## 3 1 1 1
as.numeric(f1)
## [1] 1 2 1 3 1 4
a=1:5
b=5:1
c=c(1,2,34,5,0)
a;b;c
## [1] 1 2 3 4 5
## [1] 5 4 3 2 1
## [1] 1 2 34 5 0
m1=cbind(a,c,b)
m2=rbind(c,b,a)
m3=cbind(m1,c)
# cbind(m1,m2)
# Niewykonalne ze względu na różne wymiary obiektów.
?matrix
m4=matrix(0,ncol=4,nrow=3)
m4
## [,1] [,2] [,3] [,4]
## [1,] 0 0 0 0
## [2,] 0 0 0 0
## [3,] 0 0 0 0
m5=matrix(1:12,nrow=3,ncol=4)
m5
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
matrix(1:12,nrow=3,ncol=4,byrow=T)
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
diag(4)
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 0
## [2,] 0 1 0 0
## [3,] 0 0 1 0
## [4,] 0 0 0 1
diag(c(4,3,2,3))
## [,1] [,2] [,3] [,4]
## [1,] 4 0 0 0
## [2,] 0 3 0 0
## [3,] 0 0 2 0
## [4,] 0 0 0 3
k=c(F,F,F,T)
w=c(F,F,T)
m5[w,k]
## [1] 12
m5[3,2] #Wybór elementu z 3 wiersza i 2 kolumny.
## [1] 6
m5[,2]
## [1] 4 5 6
m5[1,]
## [1] 1 4 7 10
m5[1:2,c(1,4)]
## [,1] [,2]
## [1,] 1 10
## [2,] 2 11
m5[,-3]
## [,1] [,2] [,3]
## [1,] 1 4 10
## [2,] 2 5 11
## [3,] 3 6 12
m5
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
m5[2,4]=0
m5
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 0
## [3,] 3 6 9 12
m5>6
## [,1] [,2] [,3] [,4]
## [1,] FALSE FALSE TRUE TRUE
## [2,] FALSE FALSE TRUE FALSE
## [3,] FALSE FALSE TRUE TRUE
m5[m5>6]
## [1] 7 8 9 10 12
m5[m5>6]=-1
m5
## [,1] [,2] [,3] [,4]
## [1,] 1 4 -1 -1
## [2,] 2 5 -1 0
## [3,] 3 6 -1 -1
length(m5)
## [1] 12
nrow(m5)
## [1] 3
ncol(m5)
## [1] 4
# Mnożenie macierzy
m=matrix(1:4,2,2)
mm=matrix(4:1,2,2)
m;mm
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
## [,1] [,2]
## [1,] 4 2
## [2,] 3 1
m*mm
## [,1] [,2]
## [1,] 4 6
## [2,] 6 4
m%*%mm
## [,1] [,2]
## [1,] 13 5
## [2,] 20 8
det(m)
## [1] -2
t(m)
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
solve(m)
## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5
sum(m)
## [1] 10
mean(m)
## [1] 2.5
apply(m,1,sum)
## [1] 4 6
apply(m,2,sum)
## [1] 3 7
apply(m,1,mean)
## [1] 2 3
plec=c("M","K","M","M","K")
zakupy=c(2,0.5,3.2,1.25,3) #Waga kupionych jabłek (w kg)
# Ile jabłek w gramach kupili mężczyźni?
# 1kg=1000g
# 1 sposób
sum(zakupy[plec=="M"]*1000)
## [1] 6450
# 2 sposób
plec=c(1,0,1,1,0)
plec*(zakupy*1000)
## [1] 2000 0 3200 1250 0
sum(plec*(zakupy*1000))
## [1] 6450
# 3 sposób
sum(zakupy[c(1,3,4)])*1000
## [1] 6450
# 4 sposób
sum(zakupy[-c(2,5)])*1000
## [1] 6450
t=array(sample(1:100,replace=T),c(3,2,3))
t
## , , 1
##
## [,1] [,2]
## [1,] 100 72
## [2,] 61 72
## [3,] 22 89
##
## , , 2
##
## [,1] [,2]
## [1,] 33 1
## [2,] 69 11
## [3,] 41 47
##
## , , 3
##
## [,1] [,2]
## [1,] 27 93
## [2,] 55 92
## [3,] 11 71
array(sample(1:100,replace=T),c(3,2))
## [,1] [,2]
## [1,] 26 83
## [2,] 37 24
## [3,] 42 97
t[1,2,3]
## [1] 93
t[,,3] #Wyświetlenie 3 warstwy z tablicy t.
## [,1] [,2]
## [1,] 27 93
## [2,] 55 92
## [3,] 11 71
t[c(1,2),,2]
## [,1] [,2]
## [1,] 33 1
## [2,] 69 11
dim(t)
## [1] 3 2 3
dim(t)[2]
## [1] 2
ncol(t)
## [1] 2
dim(t)=c(3,6)
t
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 100 72 33 1 27 93
## [2,] 61 72 69 11 55 92
## [3,] 22 89 41 47 11 71
t=array(sample(1:100,replace=T),c(3,2,3))
t
## , , 1
##
## [,1] [,2]
## [1,] 71 9
## [2,] 4 95
## [3,] 80 23
##
## , , 2
##
## [,1] [,2]
## [1,] 91 22
## [2,] 22 42
## [3,] 42 34
##
## , , 3
##
## [,1] [,2]
## [1,] 66 1
## [2,] 67 70
## [3,] 64 64
apply(t,2,sd) #2 - oznacza kolumny
## [1] 28.20904 30.89498
apply(t,3,sd)[2] #3 - oznacza warstwy, co oznacza, że obliczane są odchylenia standardowe dla warstw. [2] pozwala na wybranie 2 elementu z uzyskanego wektora, czyli odchylenia standardowego dla elementów z 2-giej warstwy.
## [1] 25.55321
# Ramka posiada dane o pracownikach: imię, wiek, fakt czy ktoś złożył wypowiedzenie, staż pracy (w latach).
ramka=data.frame(c("Ola","Kamil","Maciek","Asia"),c(21,32,38,40),c(T,F,F,F),seq(2,12,3))
ramka
## c..Ola....Kamil....Maciek....Asia.. c.21..32..38..40. c.T..F..F..F.
## 1 Ola 21 TRUE
## 2 Kamil 32 FALSE
## 3 Maciek 38 FALSE
## 4 Asia 40 FALSE
## seq.2..12..3.
## 1 2
## 2 5
## 3 8
## 4 11
names(ramka)
## [1] "c..Ola....Kamil....Maciek....Asia.." "c.21..32..38..40."
## [3] "c.T..F..F..F." "seq.2..12..3."
colnames(ramka)
## [1] "c..Ola....Kamil....Maciek....Asia.." "c.21..32..38..40."
## [3] "c.T..F..F..F." "seq.2..12..3."
colnames(ramka)=c("imię","wiek","wypowiedzenie","staż pracy")
ramka
## imię wiek wypowiedzenie staż pracy
## 1 Ola 21 TRUE 2
## 2 Kamil 32 FALSE 5
## 3 Maciek 38 FALSE 8
## 4 Asia 40 FALSE 11
rownames(ramka)
## [1] "1" "2" "3" "4"
# Zmiana nazw wierszy na obserwacja 1, obserwacja 2, ... .
# 1 sposób
t1="Obserwacja"
t1
## [1] "Obserwacja"
rownames(ramka)=paste(t1,rownames(ramka))
ramka
## imię wiek wypowiedzenie staż pracy
## Obserwacja 1 Ola 21 TRUE 2
## Obserwacja 2 Kamil 32 FALSE 5
## Obserwacja 3 Maciek 38 FALSE 8
## Obserwacja 4 Asia 40 FALSE 11
# 2 sposób
rownames(ramka)= paste('obserwacja',1:length(ramka))
ramka
## imię wiek wypowiedzenie staż pracy
## obserwacja 1 Ola 21 TRUE 2
## obserwacja 2 Kamil 32 FALSE 5
## obserwacja 3 Maciek 38 FALSE 8
## obserwacja 4 Asia 40 FALSE 11
rownames(ramka)=paste("obs",1:length(ramka),sep="")
ramka
## imię wiek wypowiedzenie staż pracy
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
dimnames(ramka)
## [[1]]
## [1] "obs1" "obs2" "obs3" "obs4"
##
## [[2]]
## [1] "imię" "wiek" "wypowiedzenie" "staż pracy"
ramka[3]
## wypowiedzenie
## obs1 TRUE
## obs2 FALSE
## obs3 FALSE
## obs4 FALSE
ramka[[3]]
## [1] TRUE FALSE FALSE FALSE
mean(ramka[[4]])
## [1] 6.5
mean(ramka[4]) #Błąd, ponieważ z takiego typu nie można policzyć średniej - natomiast z wektorów można .
## Warning in mean.default(ramka[4]): argument nie jest wartością liczbową ani
## logiczną: zwracanie wartości NA
## [1] NA
class(ramka[[4]])==class(ramka[4])
## [1] FALSE
ramka["wiek"]
## wiek
## obs1 21
## obs2 32
## obs3 38
## obs4 40
ramka[["wiek"]]
## [1] 21 32 38 40
ramka$wiek
## [1] 21 32 38 40
mean(ramka$wiek)
## [1] 32.75
ramka[2,4]
## [1] 5
ramka
## imię wiek wypowiedzenie staż pracy
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
names(ramka)[4]
## [1] "staż pracy"
names(ramka)[4]="staż"
ramka
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
ramka['obs2',]
## imię wiek wypowiedzenie staż
## obs2 Kamil 32 FALSE 5
# Jak wyświetlić dane o osobie, która złożyła wypowiedzenie?
ramka[,3]==T
## [1] TRUE FALSE FALSE FALSE
ramka[,"wypowiedzenie"]==T
## [1] TRUE FALSE FALSE FALSE
ramka[ramka[,3]==T,]
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
ramka[ramka[,"wypowiedzenie"]==T,]
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
sapply(ramka,class)
## imię wiek wypowiedzenie staż
## "character" "numeric" "logical" "numeric"
lapply(ramka,class)
## $imię
## [1] "character"
##
## $wiek
## [1] "numeric"
##
## $wypowiedzenie
## [1] "logical"
##
## $staż
## [1] "numeric"
#Zbiór danych: iris
data(iris)
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
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
View(iris)
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
head(iris,2)
## 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
tail(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
dim(ramka)
## [1] 4 4
attach(iris)
Species
## [1] setosa setosa setosa setosa setosa setosa
## [7] setosa setosa setosa setosa setosa setosa
## [13] setosa setosa setosa setosa setosa setosa
## [19] setosa setosa setosa setosa setosa setosa
## [25] setosa setosa setosa setosa setosa setosa
## [31] setosa setosa setosa setosa setosa setosa
## [37] setosa setosa setosa setosa setosa setosa
## [43] setosa setosa setosa setosa setosa setosa
## [49] setosa setosa versicolor versicolor versicolor versicolor
## [55] versicolor versicolor versicolor versicolor versicolor versicolor
## [61] versicolor versicolor versicolor versicolor versicolor versicolor
## [67] versicolor versicolor versicolor versicolor versicolor versicolor
## [73] versicolor versicolor versicolor versicolor versicolor versicolor
## [79] versicolor versicolor versicolor versicolor versicolor versicolor
## [85] versicolor versicolor versicolor versicolor versicolor versicolor
## [91] versicolor versicolor versicolor versicolor versicolor versicolor
## [97] versicolor versicolor versicolor versicolor virginica virginica
## [103] virginica virginica virginica virginica virginica virginica
## [109] virginica virginica virginica virginica virginica virginica
## [115] virginica virginica virginica virginica virginica virginica
## [121] virginica virginica virginica virginica virginica virginica
## [127] virginica virginica virginica virginica virginica virginica
## [133] virginica virginica virginica virginica virginica virginica
## [139] virginica virginica virginica virginica virginica virginica
## [145] virginica virginica virginica virginica virginica virginica
## Levels: setosa versicolor virginica
detach(iris)
# Species - Jeśli ponownie wpisze się kod: Species, wówczas wystąpi błąd.
#Funkcja subset pozwala wyborać wiersze z pewnego zbioru danych.
subset(iris,Species=="virginica")
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
edit(ramka)
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
ramka=edit(ramka)
fix(ramka)
##📘 Listy (list)
x=list(c("Halina","Jan"),c("siatkówka","śpiew"),
c("k","m"),c(34,40))
x
## [[1]]
## [1] "Halina" "Jan"
##
## [[2]]
## [1] "siatkówka" "śpiew"
##
## [[3]]
## [1] "k" "m"
##
## [[4]]
## [1] 34 40
x=list(imię=c("Halina","Jan"),hobby=c("siatkówka","śpiew"),
płeć=c("k","m"),wiek=c(45,30))
x
## $imię
## [1] "Halina" "Jan"
##
## $hobby
## [1] "siatkówka" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
names(x)
## [1] "imię" "hobby" "płeć" "wiek"
str(x)
## List of 4
## $ imię : chr [1:2] "Halina" "Jan"
## $ hobby: chr [1:2] "siatkówka" "śpiew"
## $ płeć : chr [1:2] "k" "m"
## $ wiek : num [1:2] 45 30
x$wiek
## [1] 45 30
x[4]
## $wiek
## [1] 45 30
x[[4]]
## [1] 45 30
x[["wiek"]]
## [1] 45 30
x[[3]][2] #Wyświetlona zostanie płeć 2 osoby.
## [1] "m"
x$hobby[1]='czytanie' #Zamiana hobby z siatkówka na czytanie.
x
## $imię
## [1] "Halina" "Jan"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
x[[1]][3]="Ania"
x
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
x=c(x,list(konta.w.b=c(1,2)))
x
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
##
## $konta.w.b
## [1] 1 2
x=x[-5]
x
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
x[[1]][c(1,2)]
## [1] "Halina" "Jan"
edit(x) #Można edytować - dodawać, usuwać elementy zamieszczone na liście.
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
lapply(x[1],sort)
## $imię
## [1] "Ania" "Halina" "Jan"
lapply(x,sort)
## $imię
## [1] "Ania" "Halina" "Jan"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 30 45
x=lapply(x,sort)
x
## $imię
## [1] "Ania" "Halina" "Jan"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 30 45
x=12
if(x>10)
{print("nierówność jest prawdziwa",quote=F)}
## [1] nierówność jest prawdziwa
if(x>10) print("nierówność jest prawdziwa")
## [1] "nierówność jest prawdziwa"
x=7
if(x>10){
print("nierówność jest prawdziwa")
}else {
print("nierówność jest fałszywa")
}
## [1] "nierówność jest fałszywa"
liczba=sample(1:100,1)
liczba
## [1] 100
x=34
if(x==liczba) {
print(paste("wybrana liczba x jest równa",liczba))
}else{
if(x>liczba){
print(paste("wybrana liczba x jest większa od",liczba))
}else{
print(paste("wybrana liczba x jest mniejsza od", liczba))
}}
## [1] "wybrana liczba x jest mniejsza od 100"
x=1:16
nierówność=ifelse(x>10,"nierówność jest prawdziwa","nierówność jest fałszywa")
nierówność
## [1] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [3] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [5] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [7] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [9] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [11] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## [13] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## [15] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
data.frame(nierówność)
## nierówność
## 1 nierówność jest fałszywa
## 2 nierówność jest fałszywa
## 3 nierówność jest fałszywa
## 4 nierówność jest fałszywa
## 5 nierówność jest fałszywa
## 6 nierówność jest fałszywa
## 7 nierówność jest fałszywa
## 8 nierówność jest fałszywa
## 9 nierówność jest fałszywa
## 10 nierówność jest fałszywa
## 11 nierówność jest prawdziwa
## 12 nierówność jest prawdziwa
## 13 nierówność jest prawdziwa
## 14 nierówność jest prawdziwa
## 15 nierówność jest prawdziwa
## 16 nierówność jest prawdziwa
for(i in 1:5) print(i)
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
for(i in 1:5)
{
print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
z=1:8
for(i in z)
{
print(i*10)
}
## [1] 10
## [1] 20
## [1] 30
## [1] 40
## [1] 50
## [1] 60
## [1] 70
## [1] 80
# Wyznaczenie sumy pierwszych 20 liczb naturalnych (bez zera).
suma=0
liczby=1:20
for(i in liczby)
{
suma=suma+i
}
suma
## [1] 210
# Wyznaczenie sumy elementów wektora x.
x=c(23,45,13,22,11,-54)
suma=0
for(i in 1:length(x))
{
suma=suma+x[i]
}
suma
## [1] 60
# Wyznaczenie sumy różnic elementów wektora x.
x=c(12,34,4,-15,4,0)
suma=0
for(i in 2:length(x))
{
suma=suma+(x[i]-x[i-1]) #Nawias tutaj jest niepotrzebny, ale podkreśla czynność odejmowania.
}
suma
## [1] -12
# Wyświetlenie kolejnych różnic elementów wektora x.
x=c(12,34,4,-15,4,0)
for(i in 2:length(x))
{
print(x[i]-x[i-1])
}
## [1] 22
## [1] -30
## [1] -19
## [1] 19
## [1] -4
# Wyświetlenie pierwszych 9 licz naturalnych (bez 0).
i=1
while(i<10)
{
print(i)
i=i+1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
# Wyznaczenie sumy elementów wektora x.
x=c(12,-30,4,2,67,-18)
i=1
suma=0
while(i<=length(x))
{
suma=suma+x[i]
i=i+1
}
suma
## [1] 37
sum(x) #Sprawdzenie poprawności uzyskanych wyników.
## [1] 37
i=1
repeat
{
print(paste("powtórzenie nr.",i))
i=i+1
if(i>5) break
}
## [1] "powtórzenie nr. 1"
## [1] "powtórzenie nr. 2"
## [1] "powtórzenie nr. 3"
## [1] "powtórzenie nr. 4"
## [1] "powtórzenie nr. 5"
# Wyświetlić kolejne 10 potęg liczby 2 za pomocą:
#Pętli for
#1 sposób
for(i in 1:10)
{
print(2^i)
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
#2 sposób
x=1:10
x
## [1] 1 2 3 4 5 6 7 8 9 10
y=c()
for(i in 1:length(x))
{
y[i]=2^x[i]
}
y
## [1] 2 4 8 16 32 64 128 256 512 1024
#Pętli while
#1 sposób
i=1
while(i<=10)
{
print(2^i)
i=i+1
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
#2 sposób
i=1
y=c()
while(i<=length(x))
{
y[i]=2^x[i]
i=i+1
}
y
## [1] 2 4 8 16 32 64 128 256 512 1024
#Pętli repeat
#1 sposób
i=1
repeat
{
print(2^i)
i=i+1
if(i>10) break
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
#2 sposób
i=1
y=c()
repeat
{
y[i]=2^x[i]
i=i+1
if(i>length(x))break
}
y
## [1] 2 4 8 16 32 64 128 256 512 1024
# Napisać pętlę, która będzie wyświetlała kolejne 10 potęg liczby 3
# i będzie pokazywała komunikat: 3 do potęgi… wynosi….
x=1:10
x
## [1] 1 2 3 4 5 6 7 8 9 10
y=c()
for(i in 1:length(x))
{
y[i]=2^x[i]
print(paste("2 do potęgi",i,"wynosi",y[i]))
}
## [1] "2 do potęgi 1 wynosi 2"
## [1] "2 do potęgi 2 wynosi 4"
## [1] "2 do potęgi 3 wynosi 8"
## [1] "2 do potęgi 4 wynosi 16"
## [1] "2 do potęgi 5 wynosi 32"
## [1] "2 do potęgi 6 wynosi 64"
## [1] "2 do potęgi 7 wynosi 128"
## [1] "2 do potęgi 8 wynosi 256"
## [1] "2 do potęgi 9 wynosi 512"
## [1] "2 do potęgi 10 wynosi 1024"
# Pętla wyświetlająca komentarz: "liczba ... jest parzysta"
# lub "liczba ... jest nieparzysta", w zależności od elementów wektora x.
x=c(21,52,35,12,25)
for(i in 1:length(x))
{
if(x[i]%%2==0){
print(paste("Liczba",x[i],"jest parzysta"))
}else{
print(paste("Liczba",x[i],"jest nieparzysta"))
}
}
## [1] "Liczba 21 jest nieparzysta"
## [1] "Liczba 52 jest parzysta"
## [1] "Liczba 35 jest nieparzysta"
## [1] "Liczba 12 jest parzysta"
## [1] "Liczba 25 jest nieparzysta"
# Napisać kod wyświetlający najpierw sumę pierwszego elementu z wektora x
# z kolejnymi elementami wektora y,
# a później sumę drugiego elementu wektora x z kolejnymi elementami wektora y itd.
x=c(12,2,3,4)
y=c(5,4,8,7)
for(i in 1:length(x))
{
for(j in 1:length(y))
{
print(x[i]+y[j])
}
}
## [1] 17
## [1] 16
## [1] 20
## [1] 19
## [1] 7
## [1] 6
## [1] 10
## [1] 9
## [1] 8
## [1] 7
## [1] 11
## [1] 10
## [1] 9
## [1] 8
## [1] 12
## [1] 11
x=c(-2,4,6,10,-3)
y=c(7,5,-12,4,-1)
pmin(x,y)
## [1] -2 4 -12 4 -3
pmax(x,y)
## [1] 7 5 6 10 -1
sum(x)
## [1] 15
mean(x)
## [1] 3
abs(x)
## [1] 2 4 6 10 3
min(x)
## [1] -3
max(x)
## [1] 10
median(x)
## [1] 4
quantile(x)
## 0% 25% 50% 75% 100%
## -3 -2 4 6 10
quantile(x,c(0.75))
## 75%
## 6
quantile(x,seq(0.1,0.9,0.1))
## 10% 20% 30% 40% 50% 60% 70% 80% 90%
## -2.6 -2.2 -0.8 1.6 4.0 4.8 5.6 6.8 8.4
wariancja=sum((x-mean(x))^2)/length(x)
wariancja
## [1] 24
wariancja_s=sum((x-mean(x))^2)/(length(x)-1)
wariancja_s
## [1] 30
var(x)
## [1] 30
odch_st=sqrt(wariancja)
odch_st
## [1] 4.898979
odch_st_s=sqrt(wariancja_s)
odch_st_s
## [1] 5.477226
o_st=sd(x)
o_st
## [1] 5.477226
x=c(23,NA,2,-12,32)
mean(x)
## [1] NA
mean(x,na.rm=TRUE)
## [1] 11.25
#Dzielenie modulo.
10%%2
## [1] 0
10%%4
## [1] 2
# Konstrukcja funkcji obliczającej i zwracającej sumę liczb.
suma=function(a,b){
a+b
}
suma(3,5) #Suma liczb 3 i 5, gdzie a=3 i b=5.
## [1] 8
# Poniższy kod nie zwróci wyniku.
suma=function(a,b){
s=a+b
}
suma(3,5)
# s
# Obiekt s nie jest zwracany, bo istnieje w funkcji,
# ale nie w przestrzeni nazw, obiektów R.
# Funkcja return pozwala na zwracanie wyniku.
suma=function(a,b){
s=a+b
return(s)
}
suma(3,5)
## [1] 8
suma=function(a,b){
s=a+b
list(suma=s)
}
suma(3,5)
## $suma
## [1] 8
# Funkcja użytkowanika zwracająca sumę, różnicę, iloczyn, iloraz i potęgę liczb.
matma=function(a,b){
s=a+b
r=a-b
il=a/b
ilocz=a*b
p=a^b
list(suma=s,różnica=r,iloraz=il,iloczyn=ilocz,potęga=p)
}
matma(4,3)
## $suma
## [1] 7
##
## $różnica
## [1] 1
##
## $iloraz
## [1] 1.333333
##
## $iloczyn
## [1] 12
##
## $potęga
## [1] 64
# Wyświetlenie iloczynu liczb.
matma(4,3)$iloczyn
## [1] 12
matma(4,3)[4]
## $iloczyn
## [1] 12
matma(4,3)[[4]]
## [1] 12
# Obliczenia w funkcji "matma" można wykonać
# nie tylko dla pojedynczych wartości, ale i dla wektorów.
x=1:5
y=c(2,5,1,3,2)
matma(x,y)
## $suma
## [1] 3 7 4 7 7
##
## $różnica
## [1] -1 -3 2 1 3
##
## $iloraz
## [1] 0.500000 0.400000 3.000000 1.333333 2.500000
##
## $iloczyn
## [1] 2 10 3 12 10
##
## $potęga
## [1] 1 32 3 64 25
# Funkcja zwracająca 4 największe wartości z wektora liczb.
x=1:20
największe=function(a){
s=sort(a,decreasing=T) #Dane sortowane są malejąco.
s[1:4] #Z danych posortowanych malejąco wybierane są 4 pierwsze wartości.
}
największe(x)
## [1] 20 19 18 17
# Funkcja użytkownika, która zwraca
# wartość minimalną, maksymalną, średnią,
# odchylenie ćwiartkowe i współczynnik asymetrii Yule'a Kendall'a.
f=function(a){
m=min(a)
mx=max(a)
s=mean(a)
o=sd(a)
q1=quantile(a,0.25)[[1]]
q2=quantile(a,0.5)[[1]]
q3=quantile(a,0.75)[[1]]
w=((q3-q2)-(q2-q1))/(q3-q1)
list(minimum=m,maksimum=mx,średnia=s,odchylenie_ćwiartkowe=o,wsp_asymetrii=w)
}
wektor=c(12,3,4,65,32)
f(wektor)
## $minimum
## [1] 3
##
## $maksimum
## [1] 65
##
## $średnia
## [1] 23.2
##
## $odchylenie_ćwiartkowe
## [1] 26.10939
##
## $wsp_asymetrii
## [1] 0.4285714
obliczenia=function(a=99,b=12){ #W tej linijce są definiowane wartości domyślne argumentów a i b.
s=a+b
r=a-b
il=a/b
ilocz=a*b
p=a^b
list(suma=s,różnica=r,iloraz=il,iloczyn=ilocz,potęga=p)
}
obliczenia(b=3) #Funkcja użytkownika zostanie wykonana dla a=99 (wartość domyślna) i b=3.
## $suma
## [1] 102
##
## $różnica
## [1] 96
##
## $iloraz
## [1] 33
##
## $iloczyn
## [1] 297
##
## $potęga
## [1] 970299
obliczenia(23) #Funkcja użytkownika zostanie wykonana dla a=23 i b=12 (wartość domyślna). 23 stoi na pierwszym miejscu i zostało potraktowane jako a, ponieważ a znajduje się na 1 miejscu w zapisie function().
## $suma
## [1] 35
##
## $różnica
## [1] 11
##
## $iloraz
## [1] 1.916667
##
## $iloczyn
## [1] 276
##
## $potęga
## [1] 2.191462e+16
obliczenia(3,4)
## $suma
## [1] 7
##
## $różnica
## [1] -1
##
## $iloraz
## [1] 0.75
##
## $iloczyn
## [1] 12
##
## $potęga
## [1] 81
# Uwaga. Przy eksporcie i później imporcie danych należy dostosować ścieżki dostępu
# do plików do własnego komputera.
dane=head(swiss) #Dane do eksportu.
dane
## Fertility Agriculture Examination Education Catholic
## Courtelary 80.2 17.0 15 12 9.96
## Delemont 83.1 45.1 6 9 84.84
## Franches-Mnt 92.5 39.7 5 5 93.40
## Moutier 85.8 36.5 12 7 33.77
## Neuveville 76.9 43.5 17 15 5.16
## Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## Courtelary 22.2
## Delemont 22.2
## Franches-Mnt 20.2
## Moutier 20.3
## Neuveville 20.6
## Porrentruy 26.6
write.table(dane,file="swiss_dane.txt",quote=F, row.names=T,col.names=T,sep="\t")
# Dla zapisania pliku w ustonym katalogu przykładowa komenda może być następująca:
# write.table(dane,file="C:/Users/Ania/Desktop/swiss_dane.txt",quote=F,row.names=T,col.names=T,sep="\t")
write.csv(dane,"swiss_dane2.csv")
write.csv2(dane,"swiss_dane3.csv")
im1=read.table("swiss_dane.txt",header=T,sep="\t")
# Dla odczytu pliku a ustalonego katalogu przykładowa komenda może być następująca:
# im1=read.table("C:/Users/Ania/Desktop/swiss_dane.txt",header=T,sep="\t")
im1
## Fertility Agriculture Examination Education Catholic
## Courtelary 80.2 17.0 15 12 9.96
## Delemont 83.1 45.1 6 9 84.84
## Franches-Mnt 92.5 39.7 5 5 93.40
## Moutier 85.8 36.5 12 7 33.77
## Neuveville 76.9 43.5 17 15 5.16
## Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## Courtelary 22.2
## Delemont 22.2
## Franches-Mnt 20.2
## Moutier 20.3
## Neuveville 20.6
## Porrentruy 26.6
im2=read.csv2("swiss_dane3.csv")
head(im2)
## X Fertility Agriculture Examination Education Catholic
## 1 Courtelary 80.2 17.0 15 12 9.96
## 2 Delemont 83.1 45.1 6 9 84.84
## 3 Franches-Mnt 92.5 39.7 5 5 93.40
## 4 Moutier 85.8 36.5 12 7 33.77
## 5 Neuveville 76.9 43.5 17 15 5.16
## 6 Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## 1 22.2
## 2 22.2
## 3 20.2
## 4 20.3
## 5 20.6
## 6 26.6
im3=read.csv("swiss_dane2.csv")
head(im3)
## X Fertility Agriculture Examination Education Catholic
## 1 Courtelary 80.2 17.0 15 12 9.96
## 2 Delemont 83.1 45.1 6 9 84.84
## 3 Franches-Mnt 92.5 39.7 5 5 93.40
## 4 Moutier 85.8 36.5 12 7 33.77
## 5 Neuveville 76.9 43.5 17 15 5.16
## 6 Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## 1 22.2
## 2 22.2
## 3 20.2
## 4 20.3
## 5 20.6
## 6 26.6
# Import danych za pomocą wklejenia danych ze schowka.
# Na początku pisze się kod, a następnie kopiuje dane, a potem wykonuje kod.
# Dane można skopiować również na początku.
im4=read.delim2("clipboard",header=T)
im4
## cena wartość ilość
## 1 5.64 231.30 41.0
## 2 5.94 246.93 41.6
## 3 5.79 237.34 41.0
## 4 5.49 225.09 41.0
## 5 5.58 223.26 40.0
## 6 5.68 227.20 40.0
## 7 5.09 193.42 38.0
#Sprawdzenie jaki jest katalog roboczy - gdzie się znajduje.
getwd()
## [1] "E:/Doc_UE/RStudio/Samouczek"
# Zmiana katalogu roboczego.
# Zamieniamy obecny katalog roboczy, żeby pracować w innym katalogu i nie musieć podawać ścieżki dostępu do plików przy imporcie czy eksporcie danych.
setwd("C:/Users/Ania/Desktop")
## Error in setwd("C:/Users/Ania/Desktop"): nie można zmienić katalogu roboczego
getwd() #Faktycznie katalog roboczy został zmieniony.
## [1] "E:/Doc_UE/RStudio/Samouczek"
# Eksport pliku do folderu o domyślnej lokalizacji.
write.csv2(dane,"iris1.csv") #Nie podaje się już ścieżki dostępu, tylko jak ma się nazywać plik zz danymi i jego rozszerzenie (w cudzysłowie).
# Import pliku z folderu o domyślnej lokalizacji.
read.csv2("iris1.csv") #Nie podaje się już ścieżki dostępu do pliku, tylko w cudzysłowie zamieszcza się nazwę i rozszerzenie pliku, który chcesię zaimportować do R.
## X Fertility Agriculture Examination Education Catholic
## 1 Courtelary 80.2 17.0 15 12 9.96
## 2 Delemont 83.1 45.1 6 9 84.84
## 3 Franches-Mnt 92.5 39.7 5 5 93.40
## 4 Moutier 85.8 36.5 12 7 33.77
## 5 Neuveville 76.9 43.5 17 15 5.16
## 6 Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## 1 22.2
## 2 22.2
## 3 20.2
## 4 20.3
## 5 20.6
## 6 26.6
x=c(65,43,21,43,57)
y=c(0,0.5,3,2.2,5)
plot(x)
plot(x,type="l")
plot(x,type="p")
plot(x,type="b")
plot(x,type="h")
plot(x,type="s")
plot(x,type="l",col=6)
plot(x,type="l",col=6,lwd=3)
plot(x,type="l",col=6,lwd=3,lty=5)
plot(x,type="l",col=6,lwd=3,lty=2)
plot(x,y)
plot(x,y,lwd=2)
plot(x,y,lwd=2,main="Czas sprzątania względem wieku")
plot(x,y,lwd=2,main="Czas sprzątania względem wieku",xlab="wiek")
plot(x,y,lwd=2,main="Czas sprzątania względem wieku",xlab="wiek",ylab="czas sprzątania")
?AirPassengers
plot(AirPassengers)
class(AirPassengers)
## [1] "ts"
trees
## Girth Height Volume
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
## 7 11.0 66 15.6
## 8 11.0 75 18.2
## 9 11.1 80 22.6
## 10 11.2 75 19.9
## 11 11.3 79 24.2
## 12 11.4 76 21.0
## 13 11.4 76 21.4
## 14 11.7 69 21.3
## 15 12.0 75 19.1
## 16 12.9 74 22.2
## 17 12.9 85 33.8
## 18 13.3 86 27.4
## 19 13.7 71 25.7
## 20 13.8 64 24.9
## 21 14.0 78 34.5
## 22 14.2 80 31.7
## 23 14.5 74 36.3
## 24 16.0 72 38.3
## 25 16.3 77 42.6
## 26 17.3 81 55.4
## 27 17.5 82 55.7
## 28 17.9 80 58.3
## 29 18.0 80 51.5
## 30 18.0 80 51.0
## 31 20.6 87 77.0
hist(trees$Height)
hist(trees$Height,prob=T)
hist(trees$Height,freq=F)
par(mfrow=c(2,1))
hist(trees$Height)
hist(trees$Height,prob=T)
par(mfrow=c(1,1))
hist(trees$Height)
hist(trees$Height,breaks=10)
hist(trees$Height,breaks=c(60,70,80,90,100))
hist(trees$Height,col="pink")
colors()
## [1] "white" "aliceblue" "antiquewhite"
## [4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
## [7] "antiquewhite4" "aquamarine" "aquamarine1"
## [10] "aquamarine2" "aquamarine3" "aquamarine4"
## [13] "azure" "azure1" "azure2"
## [16] "azure3" "azure4" "beige"
## [19] "bisque" "bisque1" "bisque2"
## [22] "bisque3" "bisque4" "black"
## [25] "blanchedalmond" "blue" "blue1"
## [28] "blue2" "blue3" "blue4"
## [31] "blueviolet" "brown" "brown1"
## [34] "brown2" "brown3" "brown4"
## [37] "burlywood" "burlywood1" "burlywood2"
## [40] "burlywood3" "burlywood4" "cadetblue"
## [43] "cadetblue1" "cadetblue2" "cadetblue3"
## [46] "cadetblue4" "chartreuse" "chartreuse1"
## [49] "chartreuse2" "chartreuse3" "chartreuse4"
## [52] "chocolate" "chocolate1" "chocolate2"
## [55] "chocolate3" "chocolate4" "coral"
## [58] "coral1" "coral2" "coral3"
## [61] "coral4" "cornflowerblue" "cornsilk"
## [64] "cornsilk1" "cornsilk2" "cornsilk3"
## [67] "cornsilk4" "cyan" "cyan1"
## [70] "cyan2" "cyan3" "cyan4"
## [73] "darkblue" "darkcyan" "darkgoldenrod"
## [76] "darkgoldenrod1" "darkgoldenrod2" "darkgoldenrod3"
## [79] "darkgoldenrod4" "darkgray" "darkgreen"
## [82] "darkgrey" "darkkhaki" "darkmagenta"
## [85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2"
## [88] "darkolivegreen3" "darkolivegreen4" "darkorange"
## [91] "darkorange1" "darkorange2" "darkorange3"
## [94] "darkorange4" "darkorchid" "darkorchid1"
## [97] "darkorchid2" "darkorchid3" "darkorchid4"
## [100] "darkred" "darksalmon" "darkseagreen"
## [103] "darkseagreen1" "darkseagreen2" "darkseagreen3"
## [106] "darkseagreen4" "darkslateblue" "darkslategray"
## [109] "darkslategray1" "darkslategray2" "darkslategray3"
## [112] "darkslategray4" "darkslategrey" "darkturquoise"
## [115] "darkviolet" "deeppink" "deeppink1"
## [118] "deeppink2" "deeppink3" "deeppink4"
## [121] "deepskyblue" "deepskyblue1" "deepskyblue2"
## [124] "deepskyblue3" "deepskyblue4" "dimgray"
## [127] "dimgrey" "dodgerblue" "dodgerblue1"
## [130] "dodgerblue2" "dodgerblue3" "dodgerblue4"
## [133] "firebrick" "firebrick1" "firebrick2"
## [136] "firebrick3" "firebrick4" "floralwhite"
## [139] "forestgreen" "gainsboro" "ghostwhite"
## [142] "gold" "gold1" "gold2"
## [145] "gold3" "gold4" "goldenrod"
## [148] "goldenrod1" "goldenrod2" "goldenrod3"
## [151] "goldenrod4" "gray" "gray0"
## [154] "gray1" "gray2" "gray3"
## [157] "gray4" "gray5" "gray6"
## [160] "gray7" "gray8" "gray9"
## [163] "gray10" "gray11" "gray12"
## [166] "gray13" "gray14" "gray15"
## [169] "gray16" "gray17" "gray18"
## [172] "gray19" "gray20" "gray21"
## [175] "gray22" "gray23" "gray24"
## [178] "gray25" "gray26" "gray27"
## [181] "gray28" "gray29" "gray30"
## [184] "gray31" "gray32" "gray33"
## [187] "gray34" "gray35" "gray36"
## [190] "gray37" "gray38" "gray39"
## [193] "gray40" "gray41" "gray42"
## [196] "gray43" "gray44" "gray45"
## [199] "gray46" "gray47" "gray48"
## [202] "gray49" "gray50" "gray51"
## [205] "gray52" "gray53" "gray54"
## [208] "gray55" "gray56" "gray57"
## [211] "gray58" "gray59" "gray60"
## [214] "gray61" "gray62" "gray63"
## [217] "gray64" "gray65" "gray66"
## [220] "gray67" "gray68" "gray69"
## [223] "gray70" "gray71" "gray72"
## [226] "gray73" "gray74" "gray75"
## [229] "gray76" "gray77" "gray78"
## [232] "gray79" "gray80" "gray81"
## [235] "gray82" "gray83" "gray84"
## [238] "gray85" "gray86" "gray87"
## [241] "gray88" "gray89" "gray90"
## [244] "gray91" "gray92" "gray93"
## [247] "gray94" "gray95" "gray96"
## [250] "gray97" "gray98" "gray99"
## [253] "gray100" "green" "green1"
## [256] "green2" "green3" "green4"
## [259] "greenyellow" "grey" "grey0"
## [262] "grey1" "grey2" "grey3"
## [265] "grey4" "grey5" "grey6"
## [268] "grey7" "grey8" "grey9"
## [271] "grey10" "grey11" "grey12"
## [274] "grey13" "grey14" "grey15"
## [277] "grey16" "grey17" "grey18"
## [280] "grey19" "grey20" "grey21"
## [283] "grey22" "grey23" "grey24"
## [286] "grey25" "grey26" "grey27"
## [289] "grey28" "grey29" "grey30"
## [292] "grey31" "grey32" "grey33"
## [295] "grey34" "grey35" "grey36"
## [298] "grey37" "grey38" "grey39"
## [301] "grey40" "grey41" "grey42"
## [304] "grey43" "grey44" "grey45"
## [307] "grey46" "grey47" "grey48"
## [310] "grey49" "grey50" "grey51"
## [313] "grey52" "grey53" "grey54"
## [316] "grey55" "grey56" "grey57"
## [319] "grey58" "grey59" "grey60"
## [322] "grey61" "grey62" "grey63"
## [325] "grey64" "grey65" "grey66"
## [328] "grey67" "grey68" "grey69"
## [331] "grey70" "grey71" "grey72"
## [334] "grey73" "grey74" "grey75"
## [337] "grey76" "grey77" "grey78"
## [340] "grey79" "grey80" "grey81"
## [343] "grey82" "grey83" "grey84"
## [346] "grey85" "grey86" "grey87"
## [349] "grey88" "grey89" "grey90"
## [352] "grey91" "grey92" "grey93"
## [355] "grey94" "grey95" "grey96"
## [358] "grey97" "grey98" "grey99"
## [361] "grey100" "honeydew" "honeydew1"
## [364] "honeydew2" "honeydew3" "honeydew4"
## [367] "hotpink" "hotpink1" "hotpink2"
## [370] "hotpink3" "hotpink4" "indianred"
## [373] "indianred1" "indianred2" "indianred3"
## [376] "indianred4" "ivory" "ivory1"
## [379] "ivory2" "ivory3" "ivory4"
## [382] "khaki" "khaki1" "khaki2"
## [385] "khaki3" "khaki4" "lavender"
## [388] "lavenderblush" "lavenderblush1" "lavenderblush2"
## [391] "lavenderblush3" "lavenderblush4" "lawngreen"
## [394] "lemonchiffon" "lemonchiffon1" "lemonchiffon2"
## [397] "lemonchiffon3" "lemonchiffon4" "lightblue"
## [400] "lightblue1" "lightblue2" "lightblue3"
## [403] "lightblue4" "lightcoral" "lightcyan"
## [406] "lightcyan1" "lightcyan2" "lightcyan3"
## [409] "lightcyan4" "lightgoldenrod" "lightgoldenrod1"
## [412] "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4"
## [415] "lightgoldenrodyellow" "lightgray" "lightgreen"
## [418] "lightgrey" "lightpink" "lightpink1"
## [421] "lightpink2" "lightpink3" "lightpink4"
## [424] "lightsalmon" "lightsalmon1" "lightsalmon2"
## [427] "lightsalmon3" "lightsalmon4" "lightseagreen"
## [430] "lightskyblue" "lightskyblue1" "lightskyblue2"
## [433] "lightskyblue3" "lightskyblue4" "lightslateblue"
## [436] "lightslategray" "lightslategrey" "lightsteelblue"
## [439] "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
## [442] "lightsteelblue4" "lightyellow" "lightyellow1"
## [445] "lightyellow2" "lightyellow3" "lightyellow4"
## [448] "limegreen" "linen" "magenta"
## [451] "magenta1" "magenta2" "magenta3"
## [454] "magenta4" "maroon" "maroon1"
## [457] "maroon2" "maroon3" "maroon4"
## [460] "mediumaquamarine" "mediumblue" "mediumorchid"
## [463] "mediumorchid1" "mediumorchid2" "mediumorchid3"
## [466] "mediumorchid4" "mediumpurple" "mediumpurple1"
## [469] "mediumpurple2" "mediumpurple3" "mediumpurple4"
## [472] "mediumseagreen" "mediumslateblue" "mediumspringgreen"
## [475] "mediumturquoise" "mediumvioletred" "midnightblue"
## [478] "mintcream" "mistyrose" "mistyrose1"
## [481] "mistyrose2" "mistyrose3" "mistyrose4"
## [484] "moccasin" "navajowhite" "navajowhite1"
## [487] "navajowhite2" "navajowhite3" "navajowhite4"
## [490] "navy" "navyblue" "oldlace"
## [493] "olivedrab" "olivedrab1" "olivedrab2"
## [496] "olivedrab3" "olivedrab4" "orange"
## [499] "orange1" "orange2" "orange3"
## [502] "orange4" "orangered" "orangered1"
## [505] "orangered2" "orangered3" "orangered4"
## [508] "orchid" "orchid1" "orchid2"
## [511] "orchid3" "orchid4" "palegoldenrod"
## [514] "palegreen" "palegreen1" "palegreen2"
## [517] "palegreen3" "palegreen4" "paleturquoise"
## [520] "paleturquoise1" "paleturquoise2" "paleturquoise3"
## [523] "paleturquoise4" "palevioletred" "palevioletred1"
## [526] "palevioletred2" "palevioletred3" "palevioletred4"
## [529] "papayawhip" "peachpuff" "peachpuff1"
## [532] "peachpuff2" "peachpuff3" "peachpuff4"
## [535] "peru" "pink" "pink1"
## [538] "pink2" "pink3" "pink4"
## [541] "plum" "plum1" "plum2"
## [544] "plum3" "plum4" "powderblue"
## [547] "purple" "purple1" "purple2"
## [550] "purple3" "purple4" "red"
## [553] "red1" "red2" "red3"
## [556] "red4" "rosybrown" "rosybrown1"
## [559] "rosybrown2" "rosybrown3" "rosybrown4"
## [562] "royalblue" "royalblue1" "royalblue2"
## [565] "royalblue3" "royalblue4" "saddlebrown"
## [568] "salmon" "salmon1" "salmon2"
## [571] "salmon3" "salmon4" "sandybrown"
## [574] "seagreen" "seagreen1" "seagreen2"
## [577] "seagreen3" "seagreen4" "seashell"
## [580] "seashell1" "seashell2" "seashell3"
## [583] "seashell4" "sienna" "sienna1"
## [586] "sienna2" "sienna3" "sienna4"
## [589] "skyblue" "skyblue1" "skyblue2"
## [592] "skyblue3" "skyblue4" "slateblue"
## [595] "slateblue1" "slateblue2" "slateblue3"
## [598] "slateblue4" "slategray" "slategray1"
## [601] "slategray2" "slategray3" "slategray4"
## [604] "slategrey" "snow" "snow1"
## [607] "snow2" "snow3" "snow4"
## [610] "springgreen" "springgreen1" "springgreen2"
## [613] "springgreen3" "springgreen4" "steelblue"
## [616] "steelblue1" "steelblue2" "steelblue3"
## [619] "steelblue4" "tan" "tan1"
## [622] "tan2" "tan3" "tan4"
## [625] "thistle" "thistle1" "thistle2"
## [628] "thistle3" "thistle4" "tomato"
## [631] "tomato1" "tomato2" "tomato3"
## [634] "tomato4" "turquoise" "turquoise1"
## [637] "turquoise2" "turquoise3" "turquoise4"
## [640] "violet" "violetred" "violetred1"
## [643] "violetred2" "violetred3" "violetred4"
## [646] "wheat" "wheat1" "wheat2"
## [649] "wheat3" "wheat4" "whitesmoke"
## [652] "yellow" "yellow1" "yellow2"
## [655] "yellow3" "yellow4" "yellowgreen"
sample(colors(),10)
## [1] "peachpuff" "grey50" "gray39" "yellow2"
## [5] "steelblue1" "magenta1" "mediumpurple1" "gray63"
## [9] "royalblue4" "darkolivegreen3"
hist(trees$Height,col=sample(colors(),6))
hist(trees$Height,border="blue",col="pink")
hist(trees$Height,col=rainbow(3))
hist(trees$Height,col=c("blue","pink","yellow"))
hist(trees$Height,border="tomato1",breaks=c(60,70,80,90,100),col="pink")
hist(trees$Height,col=c("blue","pink","yellow","grey"))
boxplot(trees$Height,col="red")
head(trees)
## Girth Height Volume
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
plot(trees$Height,trees$Volume)
pairs(trees)
head(chickwts)
## weight feed
## 1 179 horsebean
## 2 160 horsebean
## 3 136 horsebean
## 4 227 horsebean
## 5 217 horsebean
## 6 168 horsebean
chickwts$feed
## [1] horsebean horsebean horsebean horsebean horsebean horsebean horsebean
## [8] horsebean horsebean horsebean linseed linseed linseed linseed
## [15] linseed linseed linseed linseed linseed linseed linseed
## [22] linseed soybean soybean soybean soybean soybean soybean
## [29] soybean soybean soybean soybean soybean soybean soybean
## [36] soybean sunflower sunflower sunflower sunflower sunflower sunflower
## [43] sunflower sunflower sunflower sunflower sunflower sunflower meatmeal
## [50] meatmeal meatmeal meatmeal meatmeal meatmeal meatmeal meatmeal
## [57] meatmeal meatmeal meatmeal casein casein casein casein
## [64] casein casein casein casein casein casein casein
## [71] casein
## Levels: casein horsebean linseed meatmeal soybean sunflower
# barplot(chickwts$feed)
# Powyższy kod nie zadziała, ponieważ dane powinny być wektorem lub macierzą.
t=table(chickwts$feed)
t
##
## casein horsebean linseed meatmeal soybean sunflower
## 12 10 12 11 14 12
barplot(t)
pie(t)
procenty=round(prop.table(t)*100,1)
procenty
##
## casein horsebean linseed meatmeal soybean sunflower
## 16.9 14.1 16.9 15.5 19.7 16.9
pie(t,labels=paste(names(procenty),procenty,"%"))
pie(t,labels=paste(names(t),procenty,"%"))
# Elementy rachunku prawdopodobieństwa: generowanie wartości z rozkładów, gęstość, dystrybuanta i kwantyle.
?rnorm
rnorm(20)
## [1] 0.25791502 -0.37519639 1.22373070 -0.95130417 -1.35688489 0.99554248
## [7] -1.27606761 1.15203710 2.24120130 -1.13094253 0.97182204 -0.25391960
## [13] -0.05927117 -0.55105201 1.85196679 1.84897044 -0.07163209 1.66517576
## [19] 1.22342446 -0.10824524
rnorm(100,20,13)
## [1] 12.93094663 25.58589549 8.74054353 13.92270015 48.11021195
## [6] 0.60833569 8.89388655 30.21681389 19.62774126 3.65695499
## [11] 32.35624371 32.27197246 24.82598044 11.20211450 -2.56278810
## [16] 1.09617340 -13.06170093 26.95746439 -7.82568971 20.19915001
## [21] 33.19479285 13.49693954 8.03731718 40.37290055 34.54557318
## [26] 14.61489303 17.19832278 17.55931289 23.19584791 11.18175260
## [31] 13.06182070 12.30234991 6.24091171 18.29663768 25.11953002
## [36] 27.56532678 17.44838856 9.11923559 21.64126735 23.70265754
## [41] 7.11109308 29.80679712 9.04922447 35.86491955 -2.61936022
## [46] 10.35184580 24.35146983 2.06830945 16.27962428 19.01492292
## [51] 9.55083881 19.04881816 9.04793536 4.12529429 31.65048795
## [56] 27.22819802 -7.00847530 3.06837280 32.52501708 20.65708855
## [61] 13.20206858 18.23502502 21.33067572 -0.36053822 -0.01089934
## [66] 3.36864826 28.43886835 30.92918263 27.26018294 9.15520019
## [71] 16.13750021 25.36342413 13.47312990 8.24171721 13.07687247
## [76] 23.16972499 24.01195629 16.02999362 29.18658481 21.28502382
## [81] 26.58523017 16.15118322 34.61980959 25.78765752 7.73613004
## [86] 32.20613718 22.48478536 0.68473690 27.95790061 13.85679612
## [91] 36.62523955 12.65786981 21.31013639 32.68836461 6.26492628
## [96] 33.74310750 61.09539149 15.49843068 5.53007560 28.14578585
rnorm(100,sd=13,mean=20)
## [1] 16.89202501 24.10360040 12.51637972 7.78423373 12.47074143
## [6] 26.34592137 28.89642006 -10.20275639 22.97653790 -1.45014171
## [11] 27.53854850 3.48149212 25.00258407 16.49614624 9.32670234
## [16] 32.60869554 24.50402791 28.11842337 10.28996918 0.08415945
## [21] 9.67328785 28.10538022 21.10434047 27.73820413 6.51474478
## [26] 24.09248842 45.11417079 9.14262313 -8.65537448 23.27936395
## [31] 35.92374769 7.34153603 17.06732258 22.83995705 5.38204956
## [36] 39.44524710 9.10874427 15.11114550 46.89596339 -4.70858565
## [41] 15.18553198 16.01553889 16.68672875 19.36196950 7.23478629
## [46] 16.77394635 33.29796696 40.49141387 11.15976176 20.85443895
## [51] 38.87424482 23.40320490 4.54516256 -3.18825677 34.54518350
## [56] 8.72729860 31.26767713 2.29819391 7.16673477 25.71174653
## [61] 24.39805084 8.63251428 18.88575429 9.30075611 8.61758009
## [66] 25.91392278 20.98772422 21.88288508 31.27021160 29.80582931
## [71] 5.12431345 27.46101071 3.28100017 19.49978698 17.02665838
## [76] 26.26495661 7.39808300 23.71579085 31.84544550 13.50741444
## [81] 22.36216133 6.06293881 42.50883413 7.78065052 22.19803254
## [86] 21.58764100 19.34247132 19.19888994 19.20880846 17.40071908
## [91] 27.14381951 17.83765016 31.89002490 30.78204170 32.54979138
## [96] 12.48783538 22.29308878 13.27226164 34.48330413 24.98355236
set.seed(123)
n=rnorm(100, 2,0.5)
n
## [1] 1.7197622 1.8849113 2.7793542 2.0352542 2.0646439 2.8575325 2.2304581
## [8] 1.3674694 1.6565736 1.7771690 2.6120409 2.1799069 2.2003857 2.0553414
## [15] 1.7220794 2.8934566 2.2489252 1.0166914 2.3506780 1.7636043 1.4660881
## [22] 1.8910125 1.4869978 1.6355544 1.6874804 1.1566533 2.4188935 2.0766866
## [29] 1.4309315 2.6269075 2.2132321 1.8524643 2.4475628 2.4390667 2.4107905
## [36] 2.3443201 2.2769588 1.9690441 1.8470187 1.8097645 1.6526465 1.8960414
## [43] 1.3673018 3.0844780 2.6039810 1.4384457 1.7985576 1.7666723 2.3899826
## [50] 1.9583155 2.1266593 1.9857266 1.9785648 2.6843011 1.8871145 2.7582353
## [57] 1.2256236 2.2923069 2.0619271 2.1079708 2.1898197 1.7488383 1.8333963
## [64] 1.4907123 1.4641044 2.1517643 2.2241049 2.0265021 2.4611337 3.0250423
## [71] 1.7544844 0.8454156 2.5028693 1.6453996 1.6559957 2.5127857 1.8576135
## [78] 1.3896411 2.0906517 1.9305543 2.0028821 2.1926402 1.8146700 2.3221883
## [85] 1.8897567 2.1658910 2.5484195 2.2175907 1.8370342 2.5744038 2.4967519
## [92] 2.2741985 2.1193659 1.6860470 2.6803262 1.6998702 3.0936665 2.7663053
## [99] 1.8821498 1.4867895
j=runif(100)
j
## [1] 0.238726027 0.962358936 0.601365726 0.515029727 0.402573342 0.880246541
## [7] 0.364091865 0.288239281 0.170645235 0.172171746 0.482042606 0.252964929
## [13] 0.216254790 0.674376388 0.047663627 0.700853087 0.351888638 0.408943998
## [19] 0.820951324 0.918857348 0.282528330 0.961104794 0.728394428 0.686375082
## [25] 0.052843943 0.395220135 0.477845380 0.560253264 0.698261595 0.915683538
## [31] 0.618351227 0.428421509 0.542080367 0.058478489 0.260856857 0.397151953
## [37] 0.197744737 0.831927563 0.152887223 0.803418542 0.546826157 0.662317642
## [43] 0.171698494 0.633055360 0.311869747 0.724554346 0.398939825 0.969356411
## [49] 0.967398371 0.726702539 0.257216746 0.221787935 0.593045652 0.267521432
## [55] 0.531070399 0.785291671 0.168060811 0.404399181 0.471576278 0.868106807
## [61] 0.925707956 0.881977559 0.674186843 0.950166979 0.516444894 0.576519021
## [67] 0.336331206 0.347324631 0.020024301 0.502813046 0.871043414 0.006300784
## [73] 0.072057124 0.164211225 0.770334074 0.735184306 0.971875636 0.466472377
## [79] 0.074384513 0.648818124 0.758593170 0.137106081 0.396584595 0.224985329
## [85] 0.057958561 0.395892688 0.064928300 0.225886433 0.054629109 0.670282040
## [91] 0.297741783 0.100721582 0.071904097 0.880440569 0.754247402 0.816605888
## [97] 0.982140374 0.103599645 0.099041829 0.798831611
s=rt(100,df=3)
s
## [1] 0.69683236 0.82060066 -0.02475866 -0.30644712 -0.30056295 -3.47363186
## [7] -1.31714799 -0.46532917 -0.01932117 5.99328177 -0.02021276 -2.00872529
## [13] -0.57321111 -0.16850664 -1.41785209 -1.20204135 -0.52541258 1.23078376
## [19] 0.63466850 2.34977229 1.88108475 -2.20687007 6.41947266 -0.25537575
## [25] -0.66606686 -0.01114930 -0.06244739 0.18466027 -1.25469184 0.08335478
## [31] 0.35642587 -0.53703200 1.00405279 -0.43246746 -1.34543674 1.92487880
## [37] -0.09990203 -1.26894058 0.83961497 -0.15032212 -0.83106377 0.01523773
## [43] 1.00633019 -0.12547272 -1.77088587 -3.22061623 -0.07322264 -0.50701695
## [49] -0.50295934 0.07520585 0.18176418 -0.85664567 0.67830426 1.78504381
## [55] -0.24748408 0.93705785 1.97205423 0.21457114 0.36545186 1.70894197
## [61] -0.34914733 0.93052910 4.51244483 -1.46438907 1.56468817 0.49041375
## [67] 1.11727468 0.43312514 0.29718297 -2.04567260 -1.36525725 -0.66750687
## [73] -0.49447123 -0.93744377 0.51235989 -8.61233265 0.70151938 0.89078422
## [79] -0.21608493 -0.81058160 -0.25568636 -2.63293864 -1.00076993 -3.08952378
## [85] -0.01260136 -0.20001064 0.93324733 -0.06879633 2.80205973 -0.95441015
## [91] -0.78877949 0.42289498 0.75830163 0.53165633 0.85237062 0.55751630
## [97] 0.65719967 1.41166493 0.32995741 2.43177705
c=rchisq(100,3)
c
## [1] 3.3850922 3.2984545 1.6909650 0.1576374 6.6977146 0.4255763 2.1398074
## [8] 3.0006399 3.1373579 2.7302180 5.8218036 0.4584186 1.6201983 0.7657052
## [15] 2.9739183 4.1567176 5.0755977 1.1720594 1.3637716 3.0758988 2.2844511
## [22] 3.8891418 0.6878708 6.9350646 2.1324304 4.8828211 7.9019783 1.4766519
## [29] 0.5130345 1.5948243 1.9896741 2.0411105 2.6774314 5.5385065 2.2499958
## [36] 3.6797567 3.8610315 4.2479516 1.0161754 5.9954669 2.3432680 2.7945191
## [43] 3.2567545 0.9773518 4.6550916 1.8906219 9.3182640 2.7903987 1.0009019
## [50] 2.4556660 4.1543027 2.4323302 0.9571249 2.2230586 0.3827861 0.4611069
## [57] 1.7458361 1.7893021 3.1419871 0.1678722 0.4058235 3.9225606 5.0094145
## [64] 2.7821002 0.9680566 1.3273275 1.1724402 0.9700765 4.1080274 4.1016847
## [71] 0.3211031 3.6369040 2.6853121 0.6705557 0.7415162 2.1502738 6.2488106
## [78] 2.9134959 4.3211165 1.4858849 1.6249270 2.3603811 0.6411606 0.4162545
## [85] 2.3591057 2.3395796 4.2461522 2.3558489 3.5971023 1.0379425 4.3845427
## [92] 5.5239566 0.4184004 3.5731431 2.1469375 0.1211514 0.7123071 1.8005444
## [99] 1.9840761 2.8355945
f=rf(100,df1=4,df2=5)
f
## [1] 0.52610805 1.74521305 1.02604707 3.25032204 1.52430340 0.28097148
## [7] 0.38109784 0.55076467 0.69027447 0.48196860 4.41313923 0.73094071
## [13] 0.37996535 2.06320618 0.84712631 0.61603119 0.71032146 0.62933857
## [19] 2.82465565 0.41869146 2.67819390 1.77195322 0.53829047 1.08785238
## [25] 1.95254581 1.14638625 0.27337680 0.58384781 0.33364606 0.77739386
## [31] 0.48367768 1.58395506 0.85833052 0.08154664 0.28514547 0.84480764
## [37] 2.62597743 1.21076087 2.08760690 1.89972530 1.17307090 0.21546587
## [43] 1.24627808 1.35692310 17.71356434 0.20513635 1.58029619 2.90312814
## [49] 0.07009730 1.31514070 0.00564881 3.51205181 2.68952096 1.18568879
## [55] 1.58932593 2.01802763 1.59471709 0.75218091 0.59938150 1.70882973
## [61] 1.77348471 0.28766346 0.17464260 1.10959418 0.83223825 4.74271587
## [67] 3.58385752 0.09552937 1.26651119 0.28091568 0.48236156 12.00955112
## [73] 0.69463279 0.71923276 1.15728964 1.90554090 5.86638409 0.44790960
## [79] 0.09469444 2.63703334 0.09821284 0.21453281 0.17428717 3.00294331
## [85] 0.38385209 3.40359044 0.66721172 0.69316870 1.09003637 0.85520126
## [91] 3.29537360 0.66066119 0.27395316 0.10956574 0.26362624 0.53813684
## [97] 0.24114574 0.05285393 0.37716631 0.73218773
dnorm(0)
## [1] 0.3989423
dnorm(0,mean=3,sd=1)
## [1] 0.004431848
dnorm(seq(-3,3,0.05))
## [1] 0.004431848 0.005142641 0.005952532 0.006872767 0.007915452 0.009093563
## [7] 0.010420935 0.011912244 0.013582969 0.015449347 0.017528300 0.019837354
## [13] 0.022394530 0.025218220 0.028327038 0.031739652 0.035474593 0.039550042
## [19] 0.043983596 0.048792019 0.053990967 0.059594706 0.065615815 0.072064874
## [25] 0.078950158 0.086277319 0.094049077 0.102264925 0.110920835 0.120009001
## [31] 0.129517596 0.139430566 0.149727466 0.160383327 0.171368592 0.182649085
## [37] 0.194186055 0.205936269 0.217852177 0.229882141 0.241970725 0.254059056
## [43] 0.266085250 0.277984886 0.289691553 0.301137432 0.312253933 0.322972360
## [49] 0.333224603 0.342943855 0.352065327 0.360526962 0.368270140 0.375240347
## [55] 0.381387815 0.386668117 0.391042694 0.394479331 0.396952547 0.398443914
## [61] 0.398942280 0.398443914 0.396952547 0.394479331 0.391042694 0.386668117
## [67] 0.381387815 0.375240347 0.368270140 0.360526962 0.352065327 0.342943855
## [73] 0.333224603 0.322972360 0.312253933 0.301137432 0.289691553 0.277984886
## [79] 0.266085250 0.254059056 0.241970725 0.229882141 0.217852177 0.205936269
## [85] 0.194186055 0.182649085 0.171368592 0.160383327 0.149727466 0.139430566
## [91] 0.129517596 0.120009001 0.110920835 0.102264925 0.094049077 0.086277319
## [97] 0.078950158 0.072064874 0.065615815 0.059594706 0.053990967 0.048792019
## [103] 0.043983596 0.039550042 0.035474593 0.031739652 0.028327038 0.025218220
## [109] 0.022394530 0.019837354 0.017528300 0.015449347 0.013582969 0.011912244
## [115] 0.010420935 0.009093563 0.007915452 0.006872767 0.005952532 0.005142641
## [121] 0.004431848
x<-rnorm(100,3,1)
hist(x,prob=T)
lx=seq(-3,9,length=120)
lx
## [1] -3.00000000 -2.89915966 -2.79831933 -2.69747899 -2.59663866 -2.49579832
## [7] -2.39495798 -2.29411765 -2.19327731 -2.09243697 -1.99159664 -1.89075630
## [13] -1.78991597 -1.68907563 -1.58823529 -1.48739496 -1.38655462 -1.28571429
## [19] -1.18487395 -1.08403361 -0.98319328 -0.88235294 -0.78151261 -0.68067227
## [25] -0.57983193 -0.47899160 -0.37815126 -0.27731092 -0.17647059 -0.07563025
## [31] 0.02521008 0.12605042 0.22689076 0.32773109 0.42857143 0.52941176
## [37] 0.63025210 0.73109244 0.83193277 0.93277311 1.03361345 1.13445378
## [43] 1.23529412 1.33613445 1.43697479 1.53781513 1.63865546 1.73949580
## [49] 1.84033613 1.94117647 2.04201681 2.14285714 2.24369748 2.34453782
## [55] 2.44537815 2.54621849 2.64705882 2.74789916 2.84873950 2.94957983
## [61] 3.05042017 3.15126050 3.25210084 3.35294118 3.45378151 3.55462185
## [67] 3.65546218 3.75630252 3.85714286 3.95798319 4.05882353 4.15966387
## [73] 4.26050420 4.36134454 4.46218487 4.56302521 4.66386555 4.76470588
## [79] 4.86554622 4.96638655 5.06722689 5.16806723 5.26890756 5.36974790
## [85] 5.47058824 5.57142857 5.67226891 5.77310924 5.87394958 5.97478992
## [91] 6.07563025 6.17647059 6.27731092 6.37815126 6.47899160 6.57983193
## [97] 6.68067227 6.78151261 6.88235294 6.98319328 7.08403361 7.18487395
## [103] 7.28571429 7.38655462 7.48739496 7.58823529 7.68907563 7.78991597
## [109] 7.89075630 7.99159664 8.09243697 8.19327731 8.29411765 8.39495798
## [115] 8.49579832 8.59663866 8.69747899 8.79831933 8.89915966 9.00000000
lines(lx,dnorm(lx,3,1),col='red')
qnorm(0.5)
## [1] 0
qnorm(0.75,2,0.23)
## [1] 2.155133
qnorm(0.95,1,2)
## [1] 4.289707
pnorm(0.5)
## [1] 0.6914625
z=seq(-5,5,length=120)
z
## [1] -5.00000000 -4.91596639 -4.83193277 -4.74789916 -4.66386555 -4.57983193
## [7] -4.49579832 -4.41176471 -4.32773109 -4.24369748 -4.15966387 -4.07563025
## [13] -3.99159664 -3.90756303 -3.82352941 -3.73949580 -3.65546218 -3.57142857
## [19] -3.48739496 -3.40336134 -3.31932773 -3.23529412 -3.15126050 -3.06722689
## [25] -2.98319328 -2.89915966 -2.81512605 -2.73109244 -2.64705882 -2.56302521
## [31] -2.47899160 -2.39495798 -2.31092437 -2.22689076 -2.14285714 -2.05882353
## [37] -1.97478992 -1.89075630 -1.80672269 -1.72268908 -1.63865546 -1.55462185
## [43] -1.47058824 -1.38655462 -1.30252101 -1.21848739 -1.13445378 -1.05042017
## [49] -0.96638655 -0.88235294 -0.79831933 -0.71428571 -0.63025210 -0.54621849
## [55] -0.46218487 -0.37815126 -0.29411765 -0.21008403 -0.12605042 -0.04201681
## [61] 0.04201681 0.12605042 0.21008403 0.29411765 0.37815126 0.46218487
## [67] 0.54621849 0.63025210 0.71428571 0.79831933 0.88235294 0.96638655
## [73] 1.05042017 1.13445378 1.21848739 1.30252101 1.38655462 1.47058824
## [79] 1.55462185 1.63865546 1.72268908 1.80672269 1.89075630 1.97478992
## [85] 2.05882353 2.14285714 2.22689076 2.31092437 2.39495798 2.47899160
## [91] 2.56302521 2.64705882 2.73109244 2.81512605 2.89915966 2.98319328
## [97] 3.06722689 3.15126050 3.23529412 3.31932773 3.40336134 3.48739496
## [103] 3.57142857 3.65546218 3.73949580 3.82352941 3.90756303 3.99159664
## [109] 4.07563025 4.15966387 4.24369748 4.32773109 4.41176471 4.49579832
## [115] 4.57983193 4.66386555 4.74789916 4.83193277 4.91596639 5.00000000
plot(z,dnorm(z),type="l")
lines(z,dnorm(z,0,3),type="l",lty="dotted")
lines(z,dnorm(z,0,0.5),type="l",lty="dashed")
# Ostatnia linia wychodzi poza obszar wykresu, ponieważ te linie dorysowywane są do wykresu,
# czyli nie zmieniają jego rozmiaru.
# Wykres uzyskany za pomocą funkcji plot() determinuje rozmiar wykresu na stałe.
z=seq(-10,10,length=120)
plot(z,dnorm(z,0,1),type="l")
lines(z,dnorm(z,2,1),type="l",lty="dotted")
lines(z,dnorm(z,0,2),type="l",lty="dashed")
plot(z,dnorm(z),type="l")
lines(z,dnorm(z,0,3),type="l",lty="dotted")
legend("topright",inset =0.01,lty=c("solid","dotted"),
c(expression(N(mu==0,sigma==1)),expression(N(mu==0,sigma==3))) )
# Możliwe umiejscowienia legendy:
# "bottomright"
# "bottom"
# "bottomleft"
# "left"
# "topleft"
# "top"
# "topright"
# "right"
# "center"
# Wygeneruj 100 wartości z rozkładu normalnego o średniej równej -3 i odchyleniu standardowym równym 1.
# Wygeneruj 100 wartości z rozkładu t-Studenta o 8 stopniach swobody.
# Wygeneruj 100 wartości z rozkładu Chikwadrat o 2 stopniach swobody.
# Przedstaw histogramy dla wygenerowanych wartości na 1 wykresie jeden obok drugiego.
x=rnorm(100,-3,1)
y=rt(100,8)
z=rchisq(100,2)
par(mfrow=c(1,3))
hist(x)
hist(y)
hist(z)
#install.packages("lattice")
library(lattice)
# Wykorzystany zostanie zbiór danych, który dostępny jest w R pod nazwą: airquality.
aq_data=airquality
# Przekształcenie zbioru danych poprzez zamianę kolumny Month na typu factor.
aq_data$Month=factor(aq_data$Month,
levels=c(5,6,7,8,9),
labels=c("maj","czerwiec","lipiec","sierpień","wrzesień"))
head(aq_data)
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 maj 1
## 2 36 118 8.0 72 maj 2
## 3 12 149 12.6 74 maj 3
## 4 18 313 11.5 62 maj 4
## 5 NA NA 14.3 56 maj 5
## 6 28 NA 14.9 66 maj 6
# Jądrowy estymator gęstości zmiennej Temp (maksymalna temperatura).
densityplot(~Temp,data=aq_data)
# Jądrowy estymator gęstości zmiennej Temp osobno dla każdego z miesięcy.
densityplot(~Temp|Month, data=aq_data)
# Funkcja layout pozwala na zmianę ustawienia poszczególnych małych wykresów na wykresie ogólnym.
densityplot(~Temp|Month,
data=aq_data,
layout=c(5,1))
# Dodanie do wykresu: opisu osi OX i tytułu wykresu (w tym zapisania go w dwóch liniach zamiast jednej).
densityplot(~Temp|Month,
data=aq_data,
layout=c(5,1),
xlab="maksymalna odnotowana temperatura",
main="Estymacja gęstości rozkładu \nmaksymalnych temperatur w wybranych miesiącach")
# Zestawienie średniego poziomu ozonu i przeciętnej prędkości wiatru w milach na godzinę.
xyplot(Ozone~Wind,data=aq_data)
# Osobne wykresy dla każdego z miesięcy.
xyplot(Ozone~Wind|Month,data=aq_data,layout=c(5,1))
# Wyselekcjonowanie danych dla miesięcy letnich (czerwiec-sierpień).
aq_data_new=aq_data[aq_data[,"Month"]=="czerwiec"|aq_data[,"Month"]=="lipiec"|aq_data[,"Month"]=="sierpień",]
aq_data_new$Month=factor(aq_data_new$Month,levels = c("czerwiec","lipiec","sierpień"),labels=c("czerwiec","lipiec","sierpień"))
# Wyróżnienie danych z poszczególnych miesięcy innym kolorem.
xyplot(Ozone~Wind,group=Month,data=aq_data_new,pch=19,col=c(2,3,4))
# Dodanie legendy.
xyplot(Ozone~Wind,group=Month,col=c(2,3,4),data=aq_data_new,
pch=19,key=list(space="right",
text = list(as.character(unique(aq_data_new$Month))),
points = list(pch = 19, col =2:4)))
splom(aq_data[,c("Ozone","Wind","Temp")])
# Wykres pudełkowy przedstawiający poziom ozonu w wybranych miesiącach roku.
# Dodanie opisów osi oraz zmniejszenie czcionki na osiach wykresu.
bwplot(Ozone~Month,data=aq_data,
xlab="Miesiące",
ylab="Poziom Ozonu",
scales = list(cex=0.7))
# Dodanie koloru.
bwplot(Ozone~Month,data=aq_data,
xlab="Miesiące",
ylab="Poziom Ozonu",
scales = list(cex=0.7),fill=rainbow(5))
# Wykorzystany zostanie wbudowany do R zbiór danycho nazwie: ChickWeight.
# Wykres zliczający ile pisklęć jest poddanych danej diecie.
barchart(ChickWeight$Diet,horizontal=F)
# Wykorzystany zostanie wbudowany do R zbiór danych o nazwie: ChickWeight.
histogram(~weight,data=ChickWeight,
type="count",
xlab="Waga",
main="Waga piskląt",
col="pink")
#Wykorzystywany zbiór danych:
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
?lm
model1<-lm(mpg~wt,data=mtcars)
#Podstawowe informacje.
model1
##
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
##
## Coefficients:
## (Intercept) wt
## 37.285 -5.344
#Rozszerzony widok informacji o modelu.
summary(model1)
##
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.5432 -2.3647 -0.1252 1.4096 6.8727
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.2851 1.8776 19.858 < 2e-16 ***
## wt -5.3445 0.5591 -9.559 1.29e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.046 on 30 degrees of freedom
## Multiple R-squared: 0.7528, Adjusted R-squared: 0.7446
## F-statistic: 91.38 on 1 and 30 DF, p-value: 1.294e-10
model1$coefficients
## (Intercept) wt
## 37.285126 -5.344472
summary(model1)$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.285126 1.877627 19.857575 8.241799e-19
## wt -5.344472 0.559101 -9.559044 1.293959e-10
summary(model1)$coefficients[2,1]
## [1] -5.344472
summary(model1)$coef[2,1]
## [1] -5.344472
summary(model1)$coefficients[1,1]
## [1] 37.28513
summary(model1)$r.squared
## [1] 0.7528328
model1$residuals
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## -2.2826106 -0.9197704 -2.0859521 1.2973499
## Hornet Sportabout Valiant Duster 360 Merc 240D
## -0.2001440 -0.6932545 -3.9053627 4.1637381
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 2.3499593 0.2998560 -1.1001440 0.8668731
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## -0.0502472 -1.8830236 1.1733496 2.1032876
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 5.9810744 6.8727113 1.7461954 6.4219792
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## -2.6110037 -2.9725862 -3.7268663 -3.4623553
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 2.4643670 0.3564263 0.1520430 1.2010593
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## -4.5431513 -2.7809399 -3.2053627 -1.0274952
summary(model1)$residuals
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## -2.2826106 -0.9197704 -2.0859521 1.2973499
## Hornet Sportabout Valiant Duster 360 Merc 240D
## -0.2001440 -0.6932545 -3.9053627 4.1637381
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 2.3499593 0.2998560 -1.1001440 0.8668731
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## -0.0502472 -1.8830236 1.1733496 2.1032876
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 5.9810744 6.8727113 1.7461954 6.4219792
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## -2.6110037 -2.9725862 -3.7268663 -3.4623553
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 2.4643670 0.3564263 0.1520430 1.2010593
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## -4.5431513 -2.7809399 -3.2053627 -1.0274952
model1$fitted.values
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## 23.282611 21.919770 24.885952 20.102650
## Hornet Sportabout Valiant Duster 360 Merc 240D
## 18.900144 18.793255 18.205363 20.236262
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 20.450041 18.900144 18.900144 15.533127
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## 17.350247 17.083024 9.226650 8.296712
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 8.718926 25.527289 28.653805 27.478021
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## 24.111004 18.472586 18.926866 16.762355
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 16.735633 26.943574 25.847957 29.198941
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## 20.343151 22.480940 18.205363 22.427495
# Uwaga! Funkcja poniżej nie zwróci wyników.
# summary(model1)$fitted.values
plot(mtcars$mpg,mtcars$wt)
model2<-lm(mpg~wt+qsec,data=mtcars)
model2
##
## Call:
## lm(formula = mpg ~ wt + qsec, data = mtcars)
##
## Coefficients:
## (Intercept) wt qsec
## 19.7462 -5.0480 0.9292
summary(model2)
##
## Call:
## lm(formula = mpg ~ wt + qsec, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3962 -2.1431 -0.2129 1.4915 5.7486
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19.7462 5.2521 3.760 0.000765 ***
## wt -5.0480 0.4840 -10.430 2.52e-11 ***
## qsec 0.9292 0.2650 3.506 0.001500 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.596 on 29 degrees of freedom
## Multiple R-squared: 0.8264, Adjusted R-squared: 0.8144
## F-statistic: 69.03 on 2 and 29 DF, p-value: 9.395e-12
# Zbadano jak dużo studenci UE wydali w listopadzie 2022 roku na pieczywo.
# Do badania wylosowano próbę składającą się z 16 osób.
# Na poziomie istotności alfa=0,05 zweryfikować hipotezę,
# że rzeczywista średnia kwota wydatków studentów UE w listopadzie 2022 na pieczywo była:
# a) równa 40zł,
# b) mniejsza niż 40 zł,
# c) większa niż 40 zł.
#Wprowadzenie danych.
wydatki=c(70,32,100,65,34,47,23,80,47,65,34,63,72,33,63,38)
# Ad a)
# H0: mi=40
# H1: mi=/=40
# 2-stronny obszar krytyczny.
wsr=mean(wydatki)
mi0=40
n=length(wydatki)
s=sd(wydatki)
T=(wsr-mi0)/s*sqrt(n)
T
## [1] 2.650558
alpha=0.05
# Wyznaczenie obszaru krytycznego
t.alpha.l=qt(alpha/2,n-1,lower.tail = T)
t.alpha.p=qt(alpha/2,n-1,lower.tail = F)
# Obszar, w którym jeżeli znajdzie się wartość statystyki testowej, to nie ma podstaw do odrzucenia H0.
c(t.alpha.l,t.alpha.p)
## [1] -2.13145 2.13145
# Wartość statystyki testowej należy do obszaru krytycznego.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że rzeczywista średnia kwota wydatków na pieczywo studentów UE
# w listopadzie 2022 była różna od 40 zł.
# Testowanie za pomocą wbudowanej funkcji.
t.test(wydatki,mu=40)
##
## One Sample t-test
##
## data: wydatki
## t = 2.6506, df = 15, p-value = 0.01817
## alternative hypothesis: true mean is not equal to 40
## 95 percent confidence interval:
## 42.76636 65.48364
## sample estimates:
## mean of x
## 54.125
# p-wartość jest mniejsza od poziomu istotności alfa.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że rzeczywista średnia kwota wydatków na pieczywo studentów UE
# w listopadzie 2022 była różna od 40 zł.
#"Ręczne wyznaczenie p-wartości"
1-pt(T,n-1)+pt(-T,n-1)
## [1] 0.0181711
# Ad b)
# H0: mi=40
# H1: mi>40
t.test(wydatki,mu=40,alternative = "g")
##
## One Sample t-test
##
## data: wydatki
## t = 2.6506, df = 15, p-value = 0.009086
## alternative hypothesis: true mean is greater than 40
## 95 percent confidence interval:
## 44.78288 Inf
## sample estimates:
## mean of x
## 54.125
# p-wartość jest mniejsza od alfa=0.05.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że średnia kwota wydatków na pieczywo studentów na UE w listopadzie 2022 była większa od 40 zł.
# Ad c)
# H0: mi=40
# H1: mi<40
t.test(wydatki,mu=40,alternative = "l")
##
## One Sample t-test
##
## data: wydatki
## t = 2.6506, df = 15, p-value = 0.9909
## alternative hypothesis: true mean is less than 40
## 95 percent confidence interval:
## -Inf 63.46712
## sample estimates:
## mean of x
## 54.125
# Nie ma podstaw do odrzucenia H0.
# H0: zmienna wydatki ma rozkład normalny
# H1: zmienna wydatki nie ma rozkładu normalnego
shapiro.test(wydatki)
##
## Shapiro-Wilk normality test
##
## data: wydatki
## W = 0.93908, p-value = 0.3378
# Brak podstaw do odrzucenia H0 (hipotezy zerowej, głoszącej że zmienna wydatki ma rozkład normalny).
# Wyświetlenie p-wartości.
shapiro.test(wydatki)$p.value
## [1] 0.3378433
# install.packages("foreign")
library(foreign)
# Import danych zapisanych w pliku programu SPSS ze strony stat.ue.katowice.pl
wzrost<-read.spss("http://stat.ue.katowice.pl/dane1/heights.sav")
wzrost
## $Husband
## [1] 186 180 160 186 163 172 192 170 174 191 182 178 181 168 162 188 168 183 188
## [20] 166 180 176 185 169 182 162 169 176 180 157 170 186 180 188 153 179 175 165
## [39] 156 185 172 166 179 181 176 170 165 183 162 192 185 163 185 170 176 176 160
## [58] 167 157 180 172 184 185 165 181 170 161 188 181 156 161 152 179 170 170 165
## [77] 165 169 171 192 176 168 169 184 171 161 185 184 179 184 175 173 164 181 187
## [96] 181 NA
##
## $Wife
## [1] 175 168 154 166 162 152 179 163 172 170 170 147 165 162 154 166 167 174 173
## [20] 164 163 163 171 161 167 160 165 167 175 157 172 181 166 181 148 169 170 157
## [39] 162 174 168 162 159 155 171 159 164 175 156 180 167 157 167 157 168 167 145
## [58] 156 153 162 156 174 160 152 175 169 149 176 165 143 158 141 160 149 160 148
## [77] 154 171 165 175 161 162 162 176 160 158 175 174 168 177 158 161 146 168 178
## [96] 170 NA
##
## attr(,"label.table")
## attr(,"label.table")$Husband
## NULL
##
## attr(,"label.table")$Wife
## NULL
##
## attr(,"codepage")
## [1] 65001
class(wzrost)
## [1] "list"
attach(wzrost)
# Badano wzrost kobiet(żon) i mężczyzn(mężów).
# Należy zweryfikować hipotezę, że przeciętny wzrost mężów jest wyższy
# niż przeciętny wzrost w grupie żon. Przyjąć poziom istotności 0,05.
# H0: mi_M=mi_K
# H1: mi_M>mi_K
t.test(Husband,Wife,alternative = "g")
##
## Welch Two Sample t-test
##
## data: Husband and Wife
## t = 7.5616, df = 188.57, p-value = 8.467e-13
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 8.147699 Inf
## sample estimates:
## mean of x mean of y
## 174.3229 163.8958
# p-wartość jest mniejsza od założonego poziomu istotności alfa = 0.05.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że średni wzrost mężów jest większy niż średni wzrost żon.
# U kilku pacjentów badano rozkurczowe ciśnienie. Prawidłowe normy to: 80-84.
# Badane osoby mają wysokie ciśnienie i zgłosili się do badań nad nowym lekiem.
# Zmienna przed: ciśnienie rozkurczowe przed zażyciem leku.
# Zmienna po: ciśnienie rozkurczowe po tygodniowym zażywaniu leku.
# Na poziomie istotności alfa=0,05 zweryfikować hipotezę, że lek powoduje spadek ciśnienia.
przed <-c(85,90,86,92,88,86,91,89)
po <-c(86,86,88,82,88,82,84,85)
t.test(po,przed,paired = T,alternative="l")
##
## Paired t-test
##
## data: po and przed
## t = -2.2437, df = 7, p-value = 0.02988
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf -0.5056623
## sample estimates:
## mean difference
## -3.25
# Odrzucamy hipotezę zerową na rzecz hipotezy alternatywnej.
# Można twierdzić, że średnia wysokość ciśnienia rozkurczowego
# po tygodniowym stosowaniu leku była mniejsza niż przed stosowaniem leku.
# Inny zapis danych wejściowych.
badanie<- data.frame(
grupa = rep(c("przed", "po"), each = 8),
cisnienie = c(przed, po))
badanie
## grupa cisnienie
## 1 przed 85
## 2 przed 90
## 3 przed 86
## 4 przed 92
## 5 przed 88
## 6 przed 86
## 7 przed 91
## 8 przed 89
## 9 po 86
## 10 po 86
## 11 po 88
## 12 po 82
## 13 po 88
## 14 po 82
## 15 po 84
## 16 po 85
attach(badanie)
# Mając tak wyglądający zbiór danych, testowanie można przeprowadzić za pomocą kodu:
t.test(cisnienie~grupa,paired=T,alternative="l")
##
## Paired t-test
##
## data: cisnienie by grupa
## t = -2.2437, df = 7, p-value = 0.02988
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf -0.5056623
## sample estimates:
## mean difference
## -3.25
# H0: sigma_K^2=sigma_M^2
# H1: sigma_K^2>sigma_M^2
var.test(Wife,Husband,alternative="g")
##
## F test to compare two variances
##
## data: Wife and Husband
## F = 0.84, num df = 95, denom df = 95, p-value = 0.8015
## alternative hypothesis: true ratio of variances is greater than 1
## 95 percent confidence interval:
## 0.5983559 Inf
## sample estimates:
## ratio of variances
## 0.8399965
# Nie ma podstaw do odrzucenia H0 (hipotezy zerowej mówiącej o równości wariancji).
# Wprowadzenie danych.
muzyka <- matrix(c(67, 57, 68,34, 59, 77),ncol=3,byrow=T)
dimnames(muzyka) <- list(c("K", "M"),c("Pop","R$B", "Rock"))
muzyka
## Pop R$B Rock
## K 67 57 68
## M 34 59 77
# H0: zmienne są niezależne (płeć i rodzaj preferowanej muzyki są niezależne)
# H1: zmienne są zależne
chisq.test(muzyka)
##
## Pearson's Chi-squared test
##
## data: muzyka
## X-squared = 10.075, df = 2, p-value = 0.006488
# p-wartość jest mniejsza od poziomu istotności alfa.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że istnieje zależność między płcią i preferowanym stylem muzycznym.
# UWAGA! Należy pamiętać, że przy stosowaniu tego testu ważne jest założenie dot. liczebności oczekiwanych.
#install.packages("dplyr")
library(dplyr)
##
## Dołączanie pakietu: 'dplyr'
## Następujące obiekty zostały zakryte z 'package:stats':
##
## filter, lag
## Następujące obiekty zostały zakryte z 'package:base':
##
## intersect, setdiff, setequal, union
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
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 ...
glimpse(iris)
## Rows: 150
## Columns: 5
## $ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.…
## $ Sepal.Width <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.…
## $ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.…
## $ Petal.Width <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.…
## $ Species <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, s…
arrange(iris,Sepal.Length)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 4.3 3.0 1.1 0.1 setosa
## 2 4.4 2.9 1.4 0.2 setosa
## 3 4.4 3.0 1.3 0.2 setosa
## 4 4.4 3.2 1.3 0.2 setosa
## 5 4.5 2.3 1.3 0.3 setosa
## 6 4.6 3.1 1.5 0.2 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 4.6 3.6 1.0 0.2 setosa
## 9 4.6 3.2 1.4 0.2 setosa
## 10 4.7 3.2 1.3 0.2 setosa
## 11 4.7 3.2 1.6 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.8 3.4 1.9 0.2 setosa
## 15 4.8 3.1 1.6 0.2 setosa
## 16 4.8 3.0 1.4 0.3 setosa
## 17 4.9 3.0 1.4 0.2 setosa
## 18 4.9 3.1 1.5 0.1 setosa
## 19 4.9 3.1 1.5 0.2 setosa
## 20 4.9 3.6 1.4 0.1 setosa
## 21 4.9 2.4 3.3 1.0 versicolor
## 22 4.9 2.5 4.5 1.7 virginica
## 23 5.0 3.6 1.4 0.2 setosa
## 24 5.0 3.4 1.5 0.2 setosa
## 25 5.0 3.0 1.6 0.2 setosa
## 26 5.0 3.4 1.6 0.4 setosa
## 27 5.0 3.2 1.2 0.2 setosa
## 28 5.0 3.5 1.3 0.3 setosa
## 29 5.0 3.5 1.6 0.6 setosa
## 30 5.0 3.3 1.4 0.2 setosa
## 31 5.0 2.0 3.5 1.0 versicolor
## 32 5.0 2.3 3.3 1.0 versicolor
## 33 5.1 3.5 1.4 0.2 setosa
## 34 5.1 3.5 1.4 0.3 setosa
## 35 5.1 3.8 1.5 0.3 setosa
## 36 5.1 3.7 1.5 0.4 setosa
## 37 5.1 3.3 1.7 0.5 setosa
## 38 5.1 3.4 1.5 0.2 setosa
## 39 5.1 3.8 1.9 0.4 setosa
## 40 5.1 3.8 1.6 0.2 setosa
## 41 5.1 2.5 3.0 1.1 versicolor
## 42 5.2 3.5 1.5 0.2 setosa
## 43 5.2 3.4 1.4 0.2 setosa
## 44 5.2 4.1 1.5 0.1 setosa
## 45 5.2 2.7 3.9 1.4 versicolor
## 46 5.3 3.7 1.5 0.2 setosa
## 47 5.4 3.9 1.7 0.4 setosa
## 48 5.4 3.7 1.5 0.2 setosa
## 49 5.4 3.9 1.3 0.4 setosa
## 50 5.4 3.4 1.7 0.2 setosa
## 51 5.4 3.4 1.5 0.4 setosa
## 52 5.4 3.0 4.5 1.5 versicolor
## 53 5.5 4.2 1.4 0.2 setosa
## 54 5.5 3.5 1.3 0.2 setosa
## 55 5.5 2.3 4.0 1.3 versicolor
## 56 5.5 2.4 3.8 1.1 versicolor
## 57 5.5 2.4 3.7 1.0 versicolor
## 58 5.5 2.5 4.0 1.3 versicolor
## 59 5.5 2.6 4.4 1.2 versicolor
## 60 5.6 2.9 3.6 1.3 versicolor
## 61 5.6 3.0 4.5 1.5 versicolor
## 62 5.6 2.5 3.9 1.1 versicolor
## 63 5.6 3.0 4.1 1.3 versicolor
## 64 5.6 2.7 4.2 1.3 versicolor
## 65 5.6 2.8 4.9 2.0 virginica
## 66 5.7 4.4 1.5 0.4 setosa
## 67 5.7 3.8 1.7 0.3 setosa
## 68 5.7 2.8 4.5 1.3 versicolor
## 69 5.7 2.6 3.5 1.0 versicolor
## 70 5.7 3.0 4.2 1.2 versicolor
## 71 5.7 2.9 4.2 1.3 versicolor
## 72 5.7 2.8 4.1 1.3 versicolor
## 73 5.7 2.5 5.0 2.0 virginica
## 74 5.8 4.0 1.2 0.2 setosa
## 75 5.8 2.7 4.1 1.0 versicolor
## 76 5.8 2.7 3.9 1.2 versicolor
## 77 5.8 2.6 4.0 1.2 versicolor
## 78 5.8 2.7 5.1 1.9 virginica
## 79 5.8 2.8 5.1 2.4 virginica
## 80 5.8 2.7 5.1 1.9 virginica
## 81 5.9 3.0 4.2 1.5 versicolor
## 82 5.9 3.2 4.8 1.8 versicolor
## 83 5.9 3.0 5.1 1.8 virginica
## 84 6.0 2.2 4.0 1.0 versicolor
## 85 6.0 2.9 4.5 1.5 versicolor
## 86 6.0 2.7 5.1 1.6 versicolor
## 87 6.0 3.4 4.5 1.6 versicolor
## 88 6.0 2.2 5.0 1.5 virginica
## 89 6.0 3.0 4.8 1.8 virginica
## 90 6.1 2.9 4.7 1.4 versicolor
## 91 6.1 2.8 4.0 1.3 versicolor
## 92 6.1 2.8 4.7 1.2 versicolor
## 93 6.1 3.0 4.6 1.4 versicolor
## 94 6.1 3.0 4.9 1.8 virginica
## 95 6.1 2.6 5.6 1.4 virginica
## 96 6.2 2.2 4.5 1.5 versicolor
## 97 6.2 2.9 4.3 1.3 versicolor
## 98 6.2 2.8 4.8 1.8 virginica
## 99 6.2 3.4 5.4 2.3 virginica
## 100 6.3 3.3 4.7 1.6 versicolor
## 101 6.3 2.5 4.9 1.5 versicolor
## 102 6.3 2.3 4.4 1.3 versicolor
## 103 6.3 3.3 6.0 2.5 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.3 2.7 4.9 1.8 virginica
## 106 6.3 2.8 5.1 1.5 virginica
## 107 6.3 3.4 5.6 2.4 virginica
## 108 6.3 2.5 5.0 1.9 virginica
## 109 6.4 3.2 4.5 1.5 versicolor
## 110 6.4 2.9 4.3 1.3 versicolor
## 111 6.4 2.7 5.3 1.9 virginica
## 112 6.4 3.2 5.3 2.3 virginica
## 113 6.4 2.8 5.6 2.1 virginica
## 114 6.4 2.8 5.6 2.2 virginica
## 115 6.4 3.1 5.5 1.8 virginica
## 116 6.5 2.8 4.6 1.5 versicolor
## 117 6.5 3.0 5.8 2.2 virginica
## 118 6.5 3.2 5.1 2.0 virginica
## 119 6.5 3.0 5.5 1.8 virginica
## 120 6.5 3.0 5.2 2.0 virginica
## 121 6.6 2.9 4.6 1.3 versicolor
## 122 6.6 3.0 4.4 1.4 versicolor
## 123 6.7 3.1 4.4 1.4 versicolor
## 124 6.7 3.0 5.0 1.7 versicolor
## 125 6.7 3.1 4.7 1.5 versicolor
## 126 6.7 2.5 5.8 1.8 virginica
## 127 6.7 3.3 5.7 2.1 virginica
## 128 6.7 3.1 5.6 2.4 virginica
## 129 6.7 3.3 5.7 2.5 virginica
## 130 6.7 3.0 5.2 2.3 virginica
## 131 6.8 2.8 4.8 1.4 versicolor
## 132 6.8 3.0 5.5 2.1 virginica
## 133 6.8 3.2 5.9 2.3 virginica
## 134 6.9 3.1 4.9 1.5 versicolor
## 135 6.9 3.2 5.7 2.3 virginica
## 136 6.9 3.1 5.4 2.1 virginica
## 137 6.9 3.1 5.1 2.3 virginica
## 138 7.0 3.2 4.7 1.4 versicolor
## 139 7.1 3.0 5.9 2.1 virginica
## 140 7.2 3.6 6.1 2.5 virginica
## 141 7.2 3.2 6.0 1.8 virginica
## 142 7.2 3.0 5.8 1.6 virginica
## 143 7.3 2.9 6.3 1.8 virginica
## 144 7.4 2.8 6.1 1.9 virginica
## 145 7.6 3.0 6.6 2.1 virginica
## 146 7.7 3.8 6.7 2.2 virginica
## 147 7.7 2.6 6.9 2.3 virginica
## 148 7.7 2.8 6.7 2.0 virginica
## 149 7.7 3.0 6.1 2.3 virginica
## 150 7.9 3.8 6.4 2.0 virginica
arrange(iris,desc(Species),Sepal.Length)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 4.9 2.5 4.5 1.7 virginica
## 2 5.6 2.8 4.9 2.0 virginica
## 3 5.7 2.5 5.0 2.0 virginica
## 4 5.8 2.7 5.1 1.9 virginica
## 5 5.8 2.8 5.1 2.4 virginica
## 6 5.8 2.7 5.1 1.9 virginica
## 7 5.9 3.0 5.1 1.8 virginica
## 8 6.0 2.2 5.0 1.5 virginica
## 9 6.0 3.0 4.8 1.8 virginica
## 10 6.1 3.0 4.9 1.8 virginica
## 11 6.1 2.6 5.6 1.4 virginica
## 12 6.2 2.8 4.8 1.8 virginica
## 13 6.2 3.4 5.4 2.3 virginica
## 14 6.3 3.3 6.0 2.5 virginica
## 15 6.3 2.9 5.6 1.8 virginica
## 16 6.3 2.7 4.9 1.8 virginica
## 17 6.3 2.8 5.1 1.5 virginica
## 18 6.3 3.4 5.6 2.4 virginica
## 19 6.3 2.5 5.0 1.9 virginica
## 20 6.4 2.7 5.3 1.9 virginica
## 21 6.4 3.2 5.3 2.3 virginica
## 22 6.4 2.8 5.6 2.1 virginica
## 23 6.4 2.8 5.6 2.2 virginica
## 24 6.4 3.1 5.5 1.8 virginica
## 25 6.5 3.0 5.8 2.2 virginica
## 26 6.5 3.2 5.1 2.0 virginica
## 27 6.5 3.0 5.5 1.8 virginica
## 28 6.5 3.0 5.2 2.0 virginica
## 29 6.7 2.5 5.8 1.8 virginica
## 30 6.7 3.3 5.7 2.1 virginica
## 31 6.7 3.1 5.6 2.4 virginica
## 32 6.7 3.3 5.7 2.5 virginica
## 33 6.7 3.0 5.2 2.3 virginica
## 34 6.8 3.0 5.5 2.1 virginica
## 35 6.8 3.2 5.9 2.3 virginica
## 36 6.9 3.2 5.7 2.3 virginica
## 37 6.9 3.1 5.4 2.1 virginica
## 38 6.9 3.1 5.1 2.3 virginica
## 39 7.1 3.0 5.9 2.1 virginica
## 40 7.2 3.6 6.1 2.5 virginica
## 41 7.2 3.2 6.0 1.8 virginica
## 42 7.2 3.0 5.8 1.6 virginica
## 43 7.3 2.9 6.3 1.8 virginica
## 44 7.4 2.8 6.1 1.9 virginica
## 45 7.6 3.0 6.6 2.1 virginica
## 46 7.7 3.8 6.7 2.2 virginica
## 47 7.7 2.6 6.9 2.3 virginica
## 48 7.7 2.8 6.7 2.0 virginica
## 49 7.7 3.0 6.1 2.3 virginica
## 50 7.9 3.8 6.4 2.0 virginica
## 51 4.9 2.4 3.3 1.0 versicolor
## 52 5.0 2.0 3.5 1.0 versicolor
## 53 5.0 2.3 3.3 1.0 versicolor
## 54 5.1 2.5 3.0 1.1 versicolor
## 55 5.2 2.7 3.9 1.4 versicolor
## 56 5.4 3.0 4.5 1.5 versicolor
## 57 5.5 2.3 4.0 1.3 versicolor
## 58 5.5 2.4 3.8 1.1 versicolor
## 59 5.5 2.4 3.7 1.0 versicolor
## 60 5.5 2.5 4.0 1.3 versicolor
## 61 5.5 2.6 4.4 1.2 versicolor
## 62 5.6 2.9 3.6 1.3 versicolor
## 63 5.6 3.0 4.5 1.5 versicolor
## 64 5.6 2.5 3.9 1.1 versicolor
## 65 5.6 3.0 4.1 1.3 versicolor
## 66 5.6 2.7 4.2 1.3 versicolor
## 67 5.7 2.8 4.5 1.3 versicolor
## 68 5.7 2.6 3.5 1.0 versicolor
## 69 5.7 3.0 4.2 1.2 versicolor
## 70 5.7 2.9 4.2 1.3 versicolor
## 71 5.7 2.8 4.1 1.3 versicolor
## 72 5.8 2.7 4.1 1.0 versicolor
## 73 5.8 2.7 3.9 1.2 versicolor
## 74 5.8 2.6 4.0 1.2 versicolor
## 75 5.9 3.0 4.2 1.5 versicolor
## 76 5.9 3.2 4.8 1.8 versicolor
## 77 6.0 2.2 4.0 1.0 versicolor
## 78 6.0 2.9 4.5 1.5 versicolor
## 79 6.0 2.7 5.1 1.6 versicolor
## 80 6.0 3.4 4.5 1.6 versicolor
## 81 6.1 2.9 4.7 1.4 versicolor
## 82 6.1 2.8 4.0 1.3 versicolor
## 83 6.1 2.8 4.7 1.2 versicolor
## 84 6.1 3.0 4.6 1.4 versicolor
## 85 6.2 2.2 4.5 1.5 versicolor
## 86 6.2 2.9 4.3 1.3 versicolor
## 87 6.3 3.3 4.7 1.6 versicolor
## 88 6.3 2.5 4.9 1.5 versicolor
## 89 6.3 2.3 4.4 1.3 versicolor
## 90 6.4 3.2 4.5 1.5 versicolor
## 91 6.4 2.9 4.3 1.3 versicolor
## 92 6.5 2.8 4.6 1.5 versicolor
## 93 6.6 2.9 4.6 1.3 versicolor
## 94 6.6 3.0 4.4 1.4 versicolor
## 95 6.7 3.1 4.4 1.4 versicolor
## 96 6.7 3.0 5.0 1.7 versicolor
## 97 6.7 3.1 4.7 1.5 versicolor
## 98 6.8 2.8 4.8 1.4 versicolor
## 99 6.9 3.1 4.9 1.5 versicolor
## 100 7.0 3.2 4.7 1.4 versicolor
## 101 4.3 3.0 1.1 0.1 setosa
## 102 4.4 2.9 1.4 0.2 setosa
## 103 4.4 3.0 1.3 0.2 setosa
## 104 4.4 3.2 1.3 0.2 setosa
## 105 4.5 2.3 1.3 0.3 setosa
## 106 4.6 3.1 1.5 0.2 setosa
## 107 4.6 3.4 1.4 0.3 setosa
## 108 4.6 3.6 1.0 0.2 setosa
## 109 4.6 3.2 1.4 0.2 setosa
## 110 4.7 3.2 1.3 0.2 setosa
## 111 4.7 3.2 1.6 0.2 setosa
## 112 4.8 3.4 1.6 0.2 setosa
## 113 4.8 3.0 1.4 0.1 setosa
## 114 4.8 3.4 1.9 0.2 setosa
## 115 4.8 3.1 1.6 0.2 setosa
## 116 4.8 3.0 1.4 0.3 setosa
## 117 4.9 3.0 1.4 0.2 setosa
## 118 4.9 3.1 1.5 0.1 setosa
## 119 4.9 3.1 1.5 0.2 setosa
## 120 4.9 3.6 1.4 0.1 setosa
## 121 5.0 3.6 1.4 0.2 setosa
## 122 5.0 3.4 1.5 0.2 setosa
## 123 5.0 3.0 1.6 0.2 setosa
## 124 5.0 3.4 1.6 0.4 setosa
## 125 5.0 3.2 1.2 0.2 setosa
## 126 5.0 3.5 1.3 0.3 setosa
## 127 5.0 3.5 1.6 0.6 setosa
## 128 5.0 3.3 1.4 0.2 setosa
## 129 5.1 3.5 1.4 0.2 setosa
## 130 5.1 3.5 1.4 0.3 setosa
## 131 5.1 3.8 1.5 0.3 setosa
## 132 5.1 3.7 1.5 0.4 setosa
## 133 5.1 3.3 1.7 0.5 setosa
## 134 5.1 3.4 1.5 0.2 setosa
## 135 5.1 3.8 1.9 0.4 setosa
## 136 5.1 3.8 1.6 0.2 setosa
## 137 5.2 3.5 1.5 0.2 setosa
## 138 5.2 3.4 1.4 0.2 setosa
## 139 5.2 4.1 1.5 0.1 setosa
## 140 5.3 3.7 1.5 0.2 setosa
## 141 5.4 3.9 1.7 0.4 setosa
## 142 5.4 3.7 1.5 0.2 setosa
## 143 5.4 3.9 1.3 0.4 setosa
## 144 5.4 3.4 1.7 0.2 setosa
## 145 5.4 3.4 1.5 0.4 setosa
## 146 5.5 4.2 1.4 0.2 setosa
## 147 5.5 3.5 1.3 0.2 setosa
## 148 5.7 4.4 1.5 0.4 setosa
## 149 5.7 3.8 1.7 0.3 setosa
## 150 5.8 4.0 1.2 0.2 setosa
iris1<-filter(iris,Sepal.Length>5)
iris1
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 5.4 3.9 1.7 0.4 setosa
## 3 5.4 3.7 1.5 0.2 setosa
## 4 5.8 4.0 1.2 0.2 setosa
## 5 5.7 4.4 1.5 0.4 setosa
## 6 5.4 3.9 1.3 0.4 setosa
## 7 5.1 3.5 1.4 0.3 setosa
## 8 5.7 3.8 1.7 0.3 setosa
## 9 5.1 3.8 1.5 0.3 setosa
## 10 5.4 3.4 1.7 0.2 setosa
## 11 5.1 3.7 1.5 0.4 setosa
## 12 5.1 3.3 1.7 0.5 setosa
## 13 5.2 3.5 1.5 0.2 setosa
## 14 5.2 3.4 1.4 0.2 setosa
## 15 5.4 3.4 1.5 0.4 setosa
## 16 5.2 4.1 1.5 0.1 setosa
## 17 5.5 4.2 1.4 0.2 setosa
## 18 5.5 3.5 1.3 0.2 setosa
## 19 5.1 3.4 1.5 0.2 setosa
## 20 5.1 3.8 1.9 0.4 setosa
## 21 5.1 3.8 1.6 0.2 setosa
## 22 5.3 3.7 1.5 0.2 setosa
## 23 7.0 3.2 4.7 1.4 versicolor
## 24 6.4 3.2 4.5 1.5 versicolor
## 25 6.9 3.1 4.9 1.5 versicolor
## 26 5.5 2.3 4.0 1.3 versicolor
## 27 6.5 2.8 4.6 1.5 versicolor
## 28 5.7 2.8 4.5 1.3 versicolor
## 29 6.3 3.3 4.7 1.6 versicolor
## 30 6.6 2.9 4.6 1.3 versicolor
## 31 5.2 2.7 3.9 1.4 versicolor
## 32 5.9 3.0 4.2 1.5 versicolor
## 33 6.0 2.2 4.0 1.0 versicolor
## 34 6.1 2.9 4.7 1.4 versicolor
## 35 5.6 2.9 3.6 1.3 versicolor
## 36 6.7 3.1 4.4 1.4 versicolor
## 37 5.6 3.0 4.5 1.5 versicolor
## 38 5.8 2.7 4.1 1.0 versicolor
## 39 6.2 2.2 4.5 1.5 versicolor
## 40 5.6 2.5 3.9 1.1 versicolor
## 41 5.9 3.2 4.8 1.8 versicolor
## 42 6.1 2.8 4.0 1.3 versicolor
## 43 6.3 2.5 4.9 1.5 versicolor
## 44 6.1 2.8 4.7 1.2 versicolor
## 45 6.4 2.9 4.3 1.3 versicolor
## 46 6.6 3.0 4.4 1.4 versicolor
## 47 6.8 2.8 4.8 1.4 versicolor
## 48 6.7 3.0 5.0 1.7 versicolor
## 49 6.0 2.9 4.5 1.5 versicolor
## 50 5.7 2.6 3.5 1.0 versicolor
## 51 5.5 2.4 3.8 1.1 versicolor
## 52 5.5 2.4 3.7 1.0 versicolor
## 53 5.8 2.7 3.9 1.2 versicolor
## 54 6.0 2.7 5.1 1.6 versicolor
## 55 5.4 3.0 4.5 1.5 versicolor
## 56 6.0 3.4 4.5 1.6 versicolor
## 57 6.7 3.1 4.7 1.5 versicolor
## 58 6.3 2.3 4.4 1.3 versicolor
## 59 5.6 3.0 4.1 1.3 versicolor
## 60 5.5 2.5 4.0 1.3 versicolor
## 61 5.5 2.6 4.4 1.2 versicolor
## 62 6.1 3.0 4.6 1.4 versicolor
## 63 5.8 2.6 4.0 1.2 versicolor
## 64 5.6 2.7 4.2 1.3 versicolor
## 65 5.7 3.0 4.2 1.2 versicolor
## 66 5.7 2.9 4.2 1.3 versicolor
## 67 6.2 2.9 4.3 1.3 versicolor
## 68 5.1 2.5 3.0 1.1 versicolor
## 69 5.7 2.8 4.1 1.3 versicolor
## 70 6.3 3.3 6.0 2.5 virginica
## 71 5.8 2.7 5.1 1.9 virginica
## 72 7.1 3.0 5.9 2.1 virginica
## 73 6.3 2.9 5.6 1.8 virginica
## 74 6.5 3.0 5.8 2.2 virginica
## 75 7.6 3.0 6.6 2.1 virginica
## 76 7.3 2.9 6.3 1.8 virginica
## 77 6.7 2.5 5.8 1.8 virginica
## 78 7.2 3.6 6.1 2.5 virginica
## 79 6.5 3.2 5.1 2.0 virginica
## 80 6.4 2.7 5.3 1.9 virginica
## 81 6.8 3.0 5.5 2.1 virginica
## 82 5.7 2.5 5.0 2.0 virginica
## 83 5.8 2.8 5.1 2.4 virginica
## 84 6.4 3.2 5.3 2.3 virginica
## 85 6.5 3.0 5.5 1.8 virginica
## 86 7.7 3.8 6.7 2.2 virginica
## 87 7.7 2.6 6.9 2.3 virginica
## 88 6.0 2.2 5.0 1.5 virginica
## 89 6.9 3.2 5.7 2.3 virginica
## 90 5.6 2.8 4.9 2.0 virginica
## 91 7.7 2.8 6.7 2.0 virginica
## 92 6.3 2.7 4.9 1.8 virginica
## 93 6.7 3.3 5.7 2.1 virginica
## 94 7.2 3.2 6.0 1.8 virginica
## 95 6.2 2.8 4.8 1.8 virginica
## 96 6.1 3.0 4.9 1.8 virginica
## 97 6.4 2.8 5.6 2.1 virginica
## 98 7.2 3.0 5.8 1.6 virginica
## 99 7.4 2.8 6.1 1.9 virginica
## 100 7.9 3.8 6.4 2.0 virginica
## 101 6.4 2.8 5.6 2.2 virginica
## 102 6.3 2.8 5.1 1.5 virginica
## 103 6.1 2.6 5.6 1.4 virginica
## 104 7.7 3.0 6.1 2.3 virginica
## 105 6.3 3.4 5.6 2.4 virginica
## 106 6.4 3.1 5.5 1.8 virginica
## 107 6.0 3.0 4.8 1.8 virginica
## 108 6.9 3.1 5.4 2.1 virginica
## 109 6.7 3.1 5.6 2.4 virginica
## 110 6.9 3.1 5.1 2.3 virginica
## 111 5.8 2.7 5.1 1.9 virginica
## 112 6.8 3.2 5.9 2.3 virginica
## 113 6.7 3.3 5.7 2.5 virginica
## 114 6.7 3.0 5.2 2.3 virginica
## 115 6.3 2.5 5.0 1.9 virginica
## 116 6.5 3.0 5.2 2.0 virginica
## 117 6.2 3.4 5.4 2.3 virginica
## 118 5.9 3.0 5.1 1.8 virginica
filter(iris,Species=="setosa",Sepal.Length>5)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 5.4 3.9 1.7 0.4 setosa
## 3 5.4 3.7 1.5 0.2 setosa
## 4 5.8 4.0 1.2 0.2 setosa
## 5 5.7 4.4 1.5 0.4 setosa
## 6 5.4 3.9 1.3 0.4 setosa
## 7 5.1 3.5 1.4 0.3 setosa
## 8 5.7 3.8 1.7 0.3 setosa
## 9 5.1 3.8 1.5 0.3 setosa
## 10 5.4 3.4 1.7 0.2 setosa
## 11 5.1 3.7 1.5 0.4 setosa
## 12 5.1 3.3 1.7 0.5 setosa
## 13 5.2 3.5 1.5 0.2 setosa
## 14 5.2 3.4 1.4 0.2 setosa
## 15 5.4 3.4 1.5 0.4 setosa
## 16 5.2 4.1 1.5 0.1 setosa
## 17 5.5 4.2 1.4 0.2 setosa
## 18 5.5 3.5 1.3 0.2 setosa
## 19 5.1 3.4 1.5 0.2 setosa
## 20 5.1 3.8 1.9 0.4 setosa
## 21 5.1 3.8 1.6 0.2 setosa
## 22 5.3 3.7 1.5 0.2 setosa
# Wylosowanie 5% obserwacji ze zbioru danych.
sample_frac(iris,0.05)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 6.4 2.8 5.6 2.1 virginica
## 2 6.4 3.2 4.5 1.5 versicolor
## 3 6.0 2.9 4.5 1.5 versicolor
## 4 6.9 3.1 5.1 2.3 virginica
## 5 6.1 3.0 4.6 1.4 versicolor
## 6 4.3 3.0 1.1 0.1 setosa
## 7 5.0 2.0 3.5 1.0 versicolor
## 8 5.0 3.4 1.5 0.2 setosa
0.05*150
## [1] 7.5
16%>%sqrt()%>%log()
## [1] 1.386294
log(4)
## [1] 1.386294
# Wyselekcjonowanie ze zbioru danych iris: irysów, które są gatunku versicolor,
# a uzyskany zbiór należy posortować malejąco względem Petal.Width.
iris%>%filter(Species=="versicolor")%>%arrange(desc(Petal.Width))
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.9 3.2 4.8 1.8 versicolor
## 2 6.7 3.0 5.0 1.7 versicolor
## 3 6.3 3.3 4.7 1.6 versicolor
## 4 6.0 2.7 5.1 1.6 versicolor
## 5 6.0 3.4 4.5 1.6 versicolor
## 6 6.4 3.2 4.5 1.5 versicolor
## 7 6.9 3.1 4.9 1.5 versicolor
## 8 6.5 2.8 4.6 1.5 versicolor
## 9 5.9 3.0 4.2 1.5 versicolor
## 10 5.6 3.0 4.5 1.5 versicolor
## 11 6.2 2.2 4.5 1.5 versicolor
## 12 6.3 2.5 4.9 1.5 versicolor
## 13 6.0 2.9 4.5 1.5 versicolor
## 14 5.4 3.0 4.5 1.5 versicolor
## 15 6.7 3.1 4.7 1.5 versicolor
## 16 7.0 3.2 4.7 1.4 versicolor
## 17 5.2 2.7 3.9 1.4 versicolor
## 18 6.1 2.9 4.7 1.4 versicolor
## 19 6.7 3.1 4.4 1.4 versicolor
## 20 6.6 3.0 4.4 1.4 versicolor
## 21 6.8 2.8 4.8 1.4 versicolor
## 22 6.1 3.0 4.6 1.4 versicolor
## 23 5.5 2.3 4.0 1.3 versicolor
## 24 5.7 2.8 4.5 1.3 versicolor
## 25 6.6 2.9 4.6 1.3 versicolor
## 26 5.6 2.9 3.6 1.3 versicolor
## 27 6.1 2.8 4.0 1.3 versicolor
## 28 6.4 2.9 4.3 1.3 versicolor
## 29 6.3 2.3 4.4 1.3 versicolor
## 30 5.6 3.0 4.1 1.3 versicolor
## 31 5.5 2.5 4.0 1.3 versicolor
## 32 5.6 2.7 4.2 1.3 versicolor
## 33 5.7 2.9 4.2 1.3 versicolor
## 34 6.2 2.9 4.3 1.3 versicolor
## 35 5.7 2.8 4.1 1.3 versicolor
## 36 6.1 2.8 4.7 1.2 versicolor
## 37 5.8 2.7 3.9 1.2 versicolor
## 38 5.5 2.6 4.4 1.2 versicolor
## 39 5.8 2.6 4.0 1.2 versicolor
## 40 5.7 3.0 4.2 1.2 versicolor
## 41 5.6 2.5 3.9 1.1 versicolor
## 42 5.5 2.4 3.8 1.1 versicolor
## 43 5.1 2.5 3.0 1.1 versicolor
## 44 4.9 2.4 3.3 1.0 versicolor
## 45 5.0 2.0 3.5 1.0 versicolor
## 46 6.0 2.2 4.0 1.0 versicolor
## 47 5.8 2.7 4.1 1.0 versicolor
## 48 5.7 2.6 3.5 1.0 versicolor
## 49 5.5 2.4 3.7 1.0 versicolor
## 50 5.0 2.3 3.3 1.0 versicolor
mtcars
library(ggplot2)
library(knitr)
mtcars
.mtcars
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
summary(mtcars)
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
mtcars$gear <- factor(mtcars$gear)
mtcars$am <- factor(mtcars$am)
mtcars$cyl <- factor(mtcars$cyl)
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
par(mar = c(4, 4, .5, .1))
plot(mpg ~ hp, data = mtcars, pch = 19)
summary(mtcars)
## mpg cyl disp hp drat
## Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
## 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
## Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
## Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
## 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
## Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
## wt qsec vs am gear carb
## Min. :1.513 Min. :14.50 Min. :0.0000 0:19 3:15 Min. :1.000
## 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 1:13 4:12 1st Qu.:2.000
## Median :3.325 Median :17.71 Median :0.0000 5: 5 Median :2.000
## Mean :3.217 Mean :17.85 Mean :0.4375 Mean :2.812
## 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :5.424 Max. :22.90 Max. :1.0000 Max. :8.000
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
summary(mtcars)
## mpg cyl disp hp drat
## Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
## 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
## Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
## Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
## 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
## Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
## wt qsec vs am gear carb
## Min. :1.513 Min. :14.50 Min. :0.0000 0:19 3:15 Min. :1.000
## 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 1:13 4:12 1st Qu.:2.000
## Median :3.325 Median :17.71 Median :0.0000 5: 5 Median :2.000
## Mean :3.217 Mean :17.85 Mean :0.4375 Mean :2.812
## 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :5.424 Max. :22.90 Max. :1.0000 Max. :8.000
ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point()
ggplot(mtcars,aes(wt,mpg))+geom_point()
ggplot(mtcars,aes(wt,mpg,color=cyl))+geom_point()
ggplot(mtcars,aes(wt,mpg,color=cyl))+geom_point()+labs(x='Waga samochodu',y='Liczba przejechanych mil na galonie paliwa')
ggplot(mtcars,aes(wt,mpg,color=cyl))+geom_point()+labs(x='Waga samochodu',y='Liczba przejechanych mil na galonie paliwa',color='Liczba cylindrów')
ggplot(mtcars,aes(wt,mpg,color=cyl))+
geom_point()+
labs(x='Waga samochodu',y='Liczba przejechanych mil na galonie paliwa',color='Liczba cylindrów')
ggplot(mtcars,aes(wt,mpg,color=cyl))+
geom_point()+
labs(x='Waga samochodu',y='Liczba przejechanych mil na galonie paliwa',color='Liczba cylindrów')+
theme(legend.position='bottom')
ggplot(mtcars,aes(wt,mpg,color=cyl,shape=gear))+
geom_point()+
labs(x='Waga samochodu',y='Liczba przejechanych mil na galonie paliwa',color='Liczba cylindrów',shape='Liczba biegów')+
theme(legend.position='bottom')
ggplot(mtcars,aes(wt,mpg,color=cyl,shape=gear,size=wt))+
geom_point()+
labs(x='Waga samochodu',y='Liczba przejechanych mil na galonie paliwa',color='Liczba cylindrów',shape='Liczba biegów',size='Waga')+
theme(legend.position='bottom')
ggplot(mtcars,aes(wt,mpg))+
geom_point()
ggplot(mtcars,aes(mpg))+
geom_histogram()
ggplot(mtcars,aes(mpg))+
geom_histogram(binwidth=2,fill='yellow',color='blue')
ggplot(mtcars,aes(mpg,fill=cyl))+
geom_histogram(binwidth=.8,)
ggplot(mtcars,aes(cyl))+
geom_bar()
ggplot(mtcars,aes(cyl))+
geom_bar()+
coord_flip()
ggplot(mtcars,aes(cyl))+
geom_bar()+
coord_polar()
ggplot(mtcars,aes(cyl,mpg))+
geom_boxplot()
ggplot(mtcars,aes(cyl,mpg))+
geom_boxplot()+
geom_point()
ggplot(mtcars,aes(cyl,mpg))+
geom_boxplot()+
geom_jitter()
ggplot(mtcars,aes(factor(cyl),mpg))+
geom_violin()
ggplot(mtcars,aes(factor(cyl),mpg))+
geom_violin()+
geom_jitter()
ggplot(mtcars,aes(wt,mpg,label=row.names(mtcars)))+
geom_text()
ggplot(mtcars,aes(wt,mpg,label=row.names(mtcars)))+
geom_text()+
geom_point()
ggplot(mtcars,aes(wt,mpg))+
geom_smooth()
ggplot(mtcars,aes(wt,mpg))+
geom_smooth()+
geom_point()
ggplot(mtcars,aes(wt,mpg))+
geom_smooth(method='lm')+
geom_point()
ggplot(mtcars,aes(wt,mpg,color=cyl))+
geom_smooth(method='lm')+
geom_point()
ggplot(mtcars,aes(wt,mpg))+
geom_smooth(method='lm',formula=y~poly(x,2))+
geom_point()
library(ggplot2)
library(patchwork)
mtcars
.summary(mtcars)
## mpg cyl disp hp drat
## Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
## 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
## Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
## Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
## 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
## Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
## wt qsec vs am gear carb
## Min. :1.513 Min. :14.50 Min. :0.0000 0:19 3:15 Min. :1.000
## 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 1:13 4:12 1st Qu.:2.000
## Median :3.325 Median :17.71 Median :0.0000 5: 5 Median :2.000
## Mean :3.217 Mean :17.85 Mean :0.4375 Mean :2.812
## 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :5.424 Max. :22.90 Max. :1.0000 Max. :8.000
ggplot(mtcars,aes(wt, mpg)) + geom_point()
ggplot(mtcars) + geom_point(aes(wt, mpg))
p1 <- ggplot(mtcars) + geom_point(aes(wt, mpg))
p2 <- ggplot(mtcars) + geom_boxplot(aes(factor(cyl), mpg, fill = factor(gear)))
p1
p2
p1 + p2
p1|p2
p1/p2
p3 <- ggplot(mtcars) + geom_smooth(aes(wt, mpg))
p4 <- ggplot(mtcars) + geom_bar(aes(factor(cyl),fill=factor(gear)))
p3
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p4
p1 / (p2 | p3)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
(p1 | p2 | p3) /
p4
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1+p2+p3+p4
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1| p2| p3| p4
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
wrap_plots(p1, p2, p3, p4)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1+p2
p1 + p2 + geom_jitter(aes(factor(cyl), mpg))
rys <- p3 + p2
p1 + rys
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
wrap_plots(rys, p3)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + p2 + plot_spacer() +p3
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + p2 / plot_spacer() +p3
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + plot_spacer() + p2 + plot_spacer() + p3 + plot_spacer()
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + p2 + p3 + p4 +
plot_layout(ncol = 3)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + p2 + p3 + p4 +
plot_layout(widths = c(2, 1))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + p2 + p3 + p4 +
plot_layout(widths = c(2, 1), heights = c(5, 1))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
layout <- '
A#B
#C#
D#E
'
wrap_plots(D = p1, C = p2, B = p3, design = layout)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
p1 + inset_element(p2, left = 0.55, bottom = 0.55, right = 1, top = 1)
library(grid)
p1 + grid::textGrob('Tekst w oknie obok wykresu. ')
library(gridGraphics)
library(gridExtra)
##
## Dołączanie pakietu: 'gridExtra'
## Następujący obiekt został zakryty z 'package:dplyr':
##
## combine
p1 + gridExtra::tableGrob(mtcars[1:10, c('mpg', 'disp')])
p1 + tableGrob(mtcars[1:10, c('mpg', 'disp','hp','wt')])
p1 + ~plot(mtcars$mpg, mtcars$disp, main = 'Wykres 2')
gapminder
library(ggplot2)
library(dplyr)
library(gapminder)
gapminder
z pakietu gapmindersummary(gapminder)
## country continent year lifeExp
## Afghanistan: 12 Africa :624 Min. :1952 Min. :23.60
## Albania : 12 Americas:300 1st Qu.:1966 1st Qu.:48.20
## Algeria : 12 Asia :396 Median :1980 Median :60.71
## Angola : 12 Europe :360 Mean :1980 Mean :59.47
## Argentina : 12 Oceania : 24 3rd Qu.:1993 3rd Qu.:70.85
## Australia : 12 Max. :2007 Max. :82.60
## (Other) :1632
## pop gdpPercap
## Min. :6.001e+04 Min. : 241.2
## 1st Qu.:2.794e+06 1st Qu.: 1202.1
## Median :7.024e+06 Median : 3531.8
## Mean :2.960e+07 Mean : 7215.3
## 3rd Qu.:1.959e+07 3rd Qu.: 9325.5
## Max. :1.319e+09 Max. :113523.1
##
table(gapminder$continent, gapminder$year)
##
## 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 2002 2007
## Africa 52 52 52 52 52 52 52 52 52 52 52 52
## Americas 25 25 25 25 25 25 25 25 25 25 25 25
## Asia 33 33 33 33 33 33 33 33 33 33 33 33
## Europe 30 30 30 30 30 30 30 30 30 30 30 30
## Oceania 2 2 2 2 2 2 2 2 2 2 2 2
gapminder
ggplot(gapminder, aes(x=continent)) + geom_bar()
ggplot(gapminder, aes(x=continent, fill=continent)) + geom_bar()
ggplot(gapminder, aes(x=continent, fill=continent)) + geom_bar()+labs(fill='Kontynent')
ggplot(gapminder, aes(x=continent, fill=continent)) + geom_bar()+guides(fill='none')
rys
rys=ggplot(gapminder, aes(x=continent, fill=continent)) + geom_bar()+guides(fill='none')
rys + coord_trans(y="sqrt")
rys + coord_polar()
rys+coord_flip()
kraje <- c("Poland", "Germany", "Czech Republic", "Austria","Romania")
ggplot(subset(gapminder, country %in% kraje),
aes(x = year, y = lifeExp, color = country)) + geom_line() + geom_point()+
theme(legend.position='bottom') ####
ggplot(gapminder, aes(lifeExp)) +
geom_density()
ggplot(gapminder, aes(lifeExp)) +
geom_density(linewidth=1.5, fill="blue", alpha=0.6)
ggplot(gapminder, aes(lifeExp)) +
geom_histogram( binwidth=4, color="black", fill="lightblue", alpha=0.5)
ggplot(gapminder, aes(lifeExp)) +
geom_histogram(aes(y=after_stat(density)), binwidth=4, color="black", fill="lightblue", alpha=0.5)+
geom_density()
ggplot(data=gapminder, aes(x=lifeExp)) +
geom_histogram(aes(y=after_stat(density)), binwidth=4, color="black", fill="lightblue", alpha=0.5)+
geom_density(linewidth=1.5, fill="pink", alpha=0.2)
ggplot(data=gapminder, aes(x=lifeExp, fill=continent)) +
geom_density(alpha=0.3)
rys1
rys1 <- ggplot(gapminder, aes(continent, lifeExp, fill=continent))
rys1
z reprezentacją graficzną
boxplot
rys1 +
geom_boxplot(outlier.size=2)
rys1
z reprezentacją graficzną
violin
rys1 +
geom_violin()
rys2
rys2 <- ggplot(data=gapminder,
aes(x=gdpPercap, y=lifeExp))
rys2
rys2
z reprezentacją graficzną
point
rys2 + geom_point()
rys2
z reprezentacją graficzną
point
i kolorami dla kontynentówrys2 + geom_point(aes(color=continent))
rys2
z reprezentacją graficzną
violin
, kolorami dla kontynentów w oddzielnych oknachrys2+
geom_point(aes(color=continent)) +
facet_grid(year~continent)
library(gganimate)
library(gifski)
p
p <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7) +
theme(legend.position = 'none') +
labs(title = 'Rok: {frame_time}', x = 'PKB na osobę', y = 'oczekiwana długość życia') +
transition_time(year)
p
p
p
p <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7) +
theme(legend.position = 'none') +
facet_wrap(~continent) +
labs(title = 'Rok: {frame_time}', x = 'PKB na osobę', y = 'oczekiwana długość życia') +
transition_time(year)
p
p
animate(p, 100, 10)
animate(p, nframes=100, fps=10,height = 20, width = 30, units = "cm",res=150)
p <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7) +
theme(legend.position = 'none') +
facet_wrap(~continent) +
labs(title = 'Rok: {frame_time}', x = 'PKB na osobę', y = 'oczekiwana długość życia') +
transition_time(year)+
scale_colour_manual(values = country_colors) +
scale_size(range = c(2, 12)) +
scale_x_log10() +
facet_wrap(~continent) +
theme(legend.position = 'none') +
labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +
transition_time(year) +
ease_aes('linear')
p
makeplot <- function(){
datalist <- split(gapminder, gapminder$year)
lapply(datalist, function(data){
p <- ggplot(data, aes(gdpPercap, lifeExp, size = pop, color = continent)) +
scale_size("population", limits = range(gapminder$pop)) + geom_point() + ylim(20, 90) +
scale_x_log10(limits = range(gapminder$gdpPercap)) + ggtitle(data$year) + theme_classic()
print(p)
})
}
gif_file <- file.path(tempdir(), 'gapminder.gif')
save_gif(makeplot(), gif_file, 1280, 720, res = 144)
utils::browseURL(gif_file)
library(ggplot2)
library(gganimate)
library(plotly)
library(gifski)
library(dplyr)
library(bdl)
search_variables("sklepy")
## # A tibble: 3 × 7
## id subjectId n1 n2 level measureUnitId measureUnitName
## <int> <chr> <chr> <chr> <int> <int> <chr>
## 1 510 P1626 ogółem sklepy 6 35 ob.
## 2 511 P1626 sektor prywatny sklepy 6 35 ob.
## 3 58964 P2323 sklepy <NA> 3 35 ob.
get_variables("P2323")
## # A tibble: 2 × 6
## id subjectId n1 level measureUnitId measureUnitName
## <int> <chr> <chr> <int> <int> <chr>
## 1 58964 P2323 sklepy 3 35 ob.
## 2 58965 P2323 stacje paliw 3 35 ob.
get_data_by_variable("58965",year="2021",unitLevel=2)
## # A tibble: 16 × 8
## id name year val measureUnitId measureName attrId attributeDescription
## <chr> <chr> <chr> <int> <chr> <chr> <int> <chr>
## 1 0112… MAŁO… 2021 549 35 ob. 1 ""
## 2 0124… ŚLĄS… 2021 810 35 ob. 1 ""
## 3 0208… LUBU… 2021 283 35 ob. 1 ""
## 4 0230… WIEL… 2021 878 35 ob. 1 ""
## 5 0232… ZACH… 2021 429 35 ob. 1 ""
## 6 0302… DOLN… 2021 490 35 ob. 1 ""
## 7 0316… OPOL… 2021 185 35 ob. 1 ""
## 8 0404… KUJA… 2021 514 35 ob. 1 ""
## 9 0422… POMO… 2021 435 35 ob. 1 ""
## 10 0428… WARM… 2021 254 35 ob. 1 ""
## 11 0510… ŁÓDZ… 2021 695 35 ob. 1 ""
## 12 0526… ŚWIĘ… 2021 265 35 ob. 1 ""
## 13 0606… LUBE… 2021 485 35 ob. 1 ""
## 14 0618… PODK… 2021 448 35 ob. 1 ""
## 15 0620… PODL… 2021 239 35 ob. 1 ""
## 16 0714… MAZO… 2021 1169 35 ob. 1 ""
pie_plot(data_type ="variable" ,"58965", "2021", unitLevel = "1")
scatter_2var_plot(data_type = "variable" ,c("58964", "58965"), unitLevel = "2",year=2021)+labs(x='sklepy',y='stacje paliw')
line_plot(data_type = "variable", unitParentId = "010000000000", varId = "58964",unitLevel=2)
generate_map(varId = "58965", year = "2021")
dane=get_data_by_variable(c("72305","58964","58965"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2003)
p <- ggplot(
dane,
aes(x = val_58964, y=val_58965, size = val_72305/1000000, colour = name)
) +
geom_point(show.legend = TRUE, alpha = 0.6) +
scale_color_viridis_d() +
scale_size(range = c(2, 10)) +
labs(x = "liczba sklepów", y = "liczba stacji paliw")+
labs(color="Województwo",size="Ludność w mln.")
p
p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
anim_sklepy <- ggplot(dane, aes(factor(year),val_58964 )) +
geom_boxplot(color=4,fill = "grey") +
labs(x = "Rok", y = "Liczba sklepów")+
transition_manual(year, cumulative = TRUE)
animate(anim_sklepy, height = 5, width = 6, units = "in", res = 150, end_pause=6,duration=15)
anim_sp <- ggplot(dane, aes(factor(year),val_58965 )) +
geom_boxplot(color=4,fill = "grey") +
labs(x = "Rok", y = "Liczba stacji paliw")+
transition_manual(year, cumulative = TRUE)
animate(anim_sp, height = 5, width = 6, units = "in", res = 150, end_pause=6,duration=15)
anim_sklepy <- ggplot(dane, aes(factor(year),val_58964 )) +
geom_boxplot() +
labs(x = "Rok", y = "Liczba sklepów")+
transition_manual(year, cumulative = TRUE)
animate(anim_sklepy, height = 5, width = 6, units = "in", res = 150, end_pause=6,duration=15)
p<-ggplot(dane, aes(val_58964/val_72305*1000, fill = name)) +
geom_histogram()
p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}",x="Liczba sklepów na 1 tys. mieszkańców")
dane=get_data_by_variable(c("72305","58964","58965"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2003)
p <- ggplot(
dane,
aes(x = val_58964, y=val_58965, size = val_72305, colour = name)
) +
geom_point(show.legend = TRUE, alpha = 0.6) +
scale_color_viridis_d() +
scale_size(range = c(2, 10)) +
labs(x = "Liczba sklepów", y = "Liczba stacji paliw")
p
p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
p + facet_wrap(~name) +
transition_time(year) +
labs(title = "Rok: {format(frame_time,1,4)}")
dane=get_data_by_variable(c("72305","63221","63215"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2004)
p <- ggplot(
dane,
aes(x = val_63221/val_72305*1000, y=val_63215/val_72305*1000, size = val_72305/1000000, colour = name) ) +
geom_point(show.legend = TRUE, alpha = 0.6) +
scale_color_viridis_d() +
scale_size(range = c(2, 10)) +
labs(x = "Urodzenia żywe na 1000 mieszkańców", y = "Zgony na 1000 mieszkańców")+
labs(color="Województwo",size="Ludność w mln.")
p
anim=p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
animate(anim, height = 8, width = 8, units = "in", res = 150, end_pause=6,duration=15)
p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
p + facet_wrap(~name) +
transition_time(year) +
labs(title = "Rok: {format(frame_time,1,4)}")
p+ transition_time(year) +
labs(title = "Rok: {format(frame_time,1,4)}") +
shadow_wake(wake_length = 0.1, alpha = FALSE)
p+ transition_time(year) +
labs(title = "Rok: {format(frame_time,1,4)}") +
shadow_mark(alpha = 0.3, size = 0.5)
anim2 <- ggplot(dane, aes(factor(year), val_63221/val_72305*1000)) +
geom_boxplot(color=3) +
transition_manual(year, cumulative = TRUE)+
labs(x = "Rok", y = "urodzenia żywe na 1000 ludności")
anim2
animate(anim2, height = 6, width = 8, units = "in", res = 150, end_pause=6,duration=15)
anim <- ggplot(dane, aes(x=val_63221/val_72305*1000, y=val_63215/val_72305*1000,colour=name)) +
geom_point() +
labs(title = "{closest_state}") +
transition_states(year, transition_length = 4, state_length = 1)+
labs(x = "Urodzenia żywe na 1000 ludności", y = "Zgony na 1000 ludności")+
labs(color="Województwo")
animate(anim, height = 6, width = 8, units = "in", res = 150, end_pause=6,duration=15)
anim1 <- anim +
shadow_wake(wake_length = 0.05)
animate(anim1, height = 6, width = 8, units = "in", res = 150, end_pause=6,duration=15)
anim2 <- anim +
shadow_wake(0.05, size = 2, alpha = FALSE, colour = 'grey92')
animate(anim2, detail = 5,height = 6, width = 8, units = "in", res = 150, end_pause=6,duration=15)
dane=get_data_by_variable(c("633688","633690","633691"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2004)
p <- ggplot(
dane,
aes(x = val_633688, y=val_633691, colour = name) ) +
geom_point(show.legend = TRUE, alpha = 0.6) +
scale_color_viridis_d() +
scale_size(range = c(2, 10)) +
labs(x = "do 40m2", y = "pow 80m2")
p
r<-p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
animate(r, detail = 5,height = 6, width = 8, units = "in", res = 150, end_pause=6,duration=15)
## 📘 Ceny - woda zimna, węgiel kamienny i energia
dane=get_data_by_variable("5070",unitLevel=2)
theme_set(theme_bw())
dane=get_data_by_variable("5070",unitLevel=2)
p <- ggplot(
dane,
aes(year, val, group = name, color = factor(name))
) +
geom_line() +
scale_color_viridis_d() +
labs(x = "Rok", y = "Cena 1m^3 wody zimnej w zł") +
labs(color="Województwo")+
theme(legend.position = "right")
p
p + transition_reveal(as.numeric(year))
p +
geom_point() +
transition_reveal(as.numeric(year))
r=p +
geom_point(aes(group = seq_along(as.numeric(year)))) +
transition_reveal(as.numeric(year))
animate(r, detail = 5,height = 6, width = 10, units = "in", res = 150, end_pause=6,duration=15)
dane=get_data_by_variable("5029",unitLevel=2)
p <- ggplot(
dane,
aes(year, val, group = name, color = factor(name))
) +
geom_line() +
scale_color_viridis_d() +
labs(x = "Rok", y = "Cena 1 tony węgla kamiennego w zł") +
labs(color="Województwo")+
theme(legend.position = "right")
p
p + transition_reveal(as.numeric(year))
p +
geom_point() +
transition_reveal(as.numeric(year))
r=p +
geom_point(aes(group = seq_along(as.numeric(year)))) +
transition_reveal(as.numeric(year))
animate(r, detail = 5,height = 6, width = 10, units = "in", res = 150, end_pause=6,duration=15)
dane=get_data_by_variable("5071",unitLevel=2)
p <- ggplot(
dane,
aes(year, val, group = name, color = factor(name))
) +
geom_line() +
scale_color_viridis_d() +
labs(x = "Rok", y = "Cena 1kWh energii elektrycznej zł") +
labs(color="Województwo")+
theme(legend.position = "right")
p
r=p +
geom_point(aes(group = seq_along(as.numeric(year)))) +
transition_reveal(as.numeric(year))
animate(r, detail = 5,height = 6, width = 10, units = "in", res = 150, end_pause=6,duration=15)
get_variables("P2627")
## # A tibble: 18 × 7
## id subjectId n1 n2 level measureUnitId measureUnitName
## <int> <chr> <chr> <chr> <int> <int> <chr>
## 1 76973 P2627 gminy łącznie z m… ogół… 6 4 zł
## 2 76974 P2627 miasta na prawach… ogół… 6 4 zł
## 3 76975 P2627 gminy bez miast n… ogół… 6 4 zł
## 4 76976 P2627 gminy łącznie z m… doch… 6 4 zł
## 5 76977 P2627 miasta na prawach… doch… 6 4 zł
## 6 76978 P2627 gminy bez miast n… doch… 6 4 zł
## 7 76979 P2627 gminy łącznie z m… udzi… 6 4 zł
## 8 76980 P2627 miasta na prawach… udzi… 6 4 zł
## 9 76981 P2627 gminy bez miast n… udzi… 6 4 zł
## 10 76982 P2627 gminy łącznie z m… doch… 6 4 zł
## 11 76983 P2627 miasta na prawach… doch… 6 4 zł
## 12 76984 P2627 gminy bez miast n… doch… 6 4 zł
## 13 149128 P2627 gminy łącznie z m… doch… 6 4 zł
## 14 149129 P2627 miasta na prawach… doch… 6 4 zł
## 15 149130 P2627 gminy bez miast n… doch… 6 4 zł
## 16 149131 P2627 gminy łącznie z m… doch… 6 4 zł
## 17 149132 P2627 miasta na prawach… doch… 6 4 zł
## 18 149133 P2627 gminy bez miast n… doch… 6 4 zł
get_data_by_variable("76974",unitLevel=2)
## # A tibble: 336 × 8
## id name year val measureUnitId measureName attrId attributeDescription
## <chr> <chr> <chr> <dbl> <chr> <chr> <int> <chr>
## 1 0112… MAŁO… 2002 2022 4 zł 1 ""
## 2 0112… MAŁO… 2003 2098 4 zł 1 ""
## 3 0112… MAŁO… 2004 2379 4 zł 1 ""
## 4 0112… MAŁO… 2005 2674 4 zł 1 ""
## 5 0112… MAŁO… 2006 3055. 4 zł 1 ""
## 6 0112… MAŁO… 2007 3607. 4 zł 1 ""
## 7 0112… MAŁO… 2008 3876. 4 zł 1 ""
## 8 0112… MAŁO… 2009 4122. 4 zł 1 ""
## 9 0112… MAŁO… 2010 4430. 4 zł 1 ""
## 10 0112… MAŁO… 2011 4412. 4 zł 1 ""
## # ℹ 326 more rows
# 76974 P2627 miasta na prawach powiatu
# ogółem
dane=get_data_by_variable("76974",unitLevel=2)
p <- ggplot(
dane,
aes(year, val, group = name, color = factor(name))
) +
geom_line() +
scale_color_viridis_d() +
labs(x = "Rok", y = "Dochody na 1 mieszkańca miast na prawach powiatu w zł") +
labs(color="Województwo")+
theme(legend.position = "right")
p
r=p +
geom_point(aes(group = seq_along(as.numeric(year)))) +
transition_reveal(as.numeric(year))
animate(r, detail = 5,height = 6, width = 10, units = "in", res = 150, end_pause=6,duration=15)
library(ggplot2)
library(dplyr)
library(tidyr)
library(shiny)
library(shinythemes)
## Warning: pakiet 'shinythemes' został zbudowany w wersji R 4.2.3
library(gapminder)
head(gapminder)
## # A tibble: 6 × 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 1952 28.8 8425333 779.
## 2 Afghanistan Asia 1957 30.3 9240934 821.
## 3 Afghanistan Asia 1962 32.0 10267083 853.
## 4 Afghanistan Asia 1967 34.0 11537966 836.
## 5 Afghanistan Asia 1972 36.1 13079460 740.
## 6 Afghanistan Asia 1977 38.4 14880372 786.
By możliwy był wybór przez użytkownika, która zmienna ma zostać przedstawiona na wykresie słupkowym dane należy przekształcić funkcja pivot_longer przeniesie wszystkie wartości trzech zmiennych do jednej kolumny a ich nazwy do drugiej. Liczba wierszy zwiększy się trzykrotnie. Niektóre kolumny zostaną przekształcone na factor ze względów estetycznych.
dane <- gapminder%>% pivot_longer(cols = c('lifeExp','pop','gdpPercap'),
names_to = "zmienna",
values_to = "wartość") %>%
mutate(zmienna=factor(zmienna,levels=c("lifeExp","pop","gdpPercap"),
labels = c("średnia długość życia","populacja","PKB per capita")))
Wartości kilku kolorów które zostaną użyte w wykresach
k<- "#2b3e4f"
k2<-"#ededef"
k3<- "#df6916"
k4<-"#9d9da1"
Pakiet shiny pozwala na tworzenie internatywnych aplikacji.
Składają się one z dwóch głownych elementów - interfejsu użytkownika i serwera.
Aplikację taką można uruchomić za pomocą Rstudio lub opublikować jako stronę internetową.
W ramach elementu ui zdefiniowany zostanie interfejs użytkownika.
Ta część aplikacji definiuje jakie elementy wyśwpietlane są po uruchomieniu alplikacji oraz ich układ i wygląd.
ui <- fluidPage(
#wybór motywu
theme = shinytheme("superhero"),
#tytuł dashboardu
titlePanel("Interaktywny dashboard z pakietem shiny"),
#wewnątrz funkcji tabsetPanel zagnieżdżone są definiujące poszczególne karty funkcje tabPanel()
tabsetPanel(
##pierwsza karta
tabPanel("Gapminder - ogólne statystyki",
###panel boczny
sidebarLayout(
sidebarPanel(
####wybór daty - suwak
####pierwszy argument to nazwa elementu input
####można się do nich odnosić skryptach wykonywanych przez serwer
####tutaj na przykład użytkownik wybiera dla jakiego roku sporządzony będzie wykres
sliderInput("data_slupkowy",
#opis elemetu widoczny dla użytkownika
"Wybierz datę:",
#wartości minimalne i maksymalne suwaka
min = 1952,
max = 2007,
#wartość domyślna
value=2007,
#co ile można się przesunąć suwakiem
#zbiór gapminder zawiera obserwacje co pięć lat dlatego step=5
#należy unikać możliwości wybrania suwakiem wartości niewystępujących w danych
#jeżeli wartość ta ma być użyta do filtorwania
step=5,
sep=""),
####wybór zmiennej - lista rozwijana
selectInput("zmienna_slupkowy",
"Wybierz zmienną:",
#możliwe do wybrania wartości
choices = c("średnia długość życia","populacja","PKB per capita"))),
###wyświetlany wykres słupkowy
###sam wykres zostanie zdefiniowany w ramach elementu serwer
mainPanel(
plotOutput("wykres_slupkowy")
)
)),
##druga karta
tabPanel("Gapminder - wykres bąbelkowy",
###panel boczny
sidebarLayout(
sidebarPanel(
####wybór daty - suwak
sliderInput("data_babelkowy",
"Wybierz datę:",
min = 1952,
max = 2007,
value=2007,
step=5,
sep="",
#animacja - klatka po klatce zobaczyć będzie można poszczególne lata
animate = TRUE),
####wybór kontynentów - lista z checkboxami
####w przeciwieństwie do rozwijanej pozwala na wybór wielu elementów jednocześnie
checkboxGroupInput("kontynenty_babelkowy",
"Wybierz wyświetlane kontynenty:",
#możliwe do wybrania wartości
choices = c("Azja","Europa","Afryka","Ameryki","Oceania"),
#wartości domyślnie wybrane
selected = c("Azja","Europa","Afryka","Ameryki","Oceania"))),
###wyświetlany wykres bąbelkowy
mainPanel(
plotOutput("wykres_babelkowy")
)
)),
#trzecia karta
tabPanel("Rozwój krajów Europy",
###w ramach tej karty zaprezentowany zostanie sposób na umieszczenie
###kilku wykresów jednocześnie w jednej karcie
sidebarLayout(
sidebarPanel(
####wybór zmiennej - lista rozwijana
selectInput("kraj_liniowy",
"Wybierz kraj:",
#zamiast wypisywać możliwe wartości kod odwołuje się bezpośrednio do danych
choices = unique(gapminder%>%filter(continent=="Europe")%>%select(country)))),
###wyświetlane wykresy liniowe
mainPanel(
####wszystkie wykresy umieszczone są w funkcji fluidRow
####każdy umieszczony jest w osobnej funkcji column
####pierwszy argument funkcji kolumn decyduje o szerokości argumentu z 12 jako maksimum
####w celu umieszczenia dwóch wykresów obok siebie zamiast pod sobą 12 należałoby zamienić na 4
####(tak by suma szerokości 3 wykresów była równa 12)
fluidRow(
column(12,plotOutput("wykres_liniowy1")),
column(12,plotOutput("wykres_liniowy2")),
column(12,plotOutput("wykres_liniowy3"))
)
)
))
)
)
W ramach serwera zostanie zapisany kod R, który wykonywany będzie przez dashboard.
W tym przypadku będą to głównie wykresy jednak można tu umieścić obliczenia, przekształcenia danych itp.
server <- function(input, output) {
#wykres słupkowy
##wykres zostaje zapisany jako część elementu output
##do tych nazw odwoływać się można w ramach ui by wykres był widoczny w dashboardzie
##kod tworzący wykres obudowany jest funkcją renderPlot
output$wykres_slupkowy <- renderPlot({
###dane są filtorwane tak by ograniczyć je do zmiennej i roku
###wybranych przez użytkownika
###przywołane zostają input$zmienna_slupkowy i input$data_slupkowy,
###których nazwy zostały zdefiniowane w funkcjach tworzących
###suwak i listę rozwijaną pierwszej karty
dane%>%filter(zmienna==input$zmienna_slupkowy,
year==input$data_slupkowy)%>%
###dane zostają ograniczone do 20 obserwacji o najwyższych wartościach
###wybranej zmiennej w wybranym roku
slice_max(order_by = wartość,n=20)%>%
###tworzenie wykresu ggpolt
ggplot(aes(y=reorder(country, wartość),x=wartość))+
geom_bar(stat='identity',fill=k3)+
geom_text(aes(label=wartość),color=k2,fontface='bold')+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
###do zdefiniowanego przez użytkownika inputu można odwoływać się
###nie tylko w celu filtrowania danych
### na przykład niżej opis osi bedzie zmieniał się w zależności od wybranej zmiennej
labs(x=input$zmienna_slupkowy,y="")
})
#wykres bąbelkowy
##po raz kolejny wykres zapisany jest jako część outputu, sam kod generujący wykres umieszczony jest w funkcji renderPlot
##tym razem odtworzony zostanie znany sposób prezentacji danych gapminder - wykres bąbelkowy
output$wykres_babelkowy <- renderPlot({gapminder%>%
###zmienna continent przeształcona jest na factor tak by możliwe było użycie
###w elementach interfejsu polskich nazw kontynentów
mutate(continent=factor(continent,
levels = c("Asia","Europe","Africa","Americas","Oceania"),
labels = c("Azja","Europa","Afryka","Ameryki","Oceania")))%>%
###dane ograniczone zostają do wybranego za pomocą suwaka roku
###należy pamiętać że w tym przypadku suwak umożliwia animację wykresu
###tzn. dane będą filtrowane wielokrotnie,
###w tym wypadku również wykres będzie wielokrotnie tworzony
filter(year==input$data_babelkowy,
###użytkownik ma mozliwość wyboru wielu kontynentów na raz
###więc w filtrze wykorzystano operator %in%
continent %in% input$kontynenty_babelkowy)%>%
###tworzenie wykresu ggpolt
ggplot(aes(y=lifeExp,x=gdpPercap,color=continent,size=pop))+
geom_point()+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
legend.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
legend.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'),
legend.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="PKB per capita",y="średnia długość życia")+
###stałe zakresy wartości dla osi oraz rozmiaru punktów wprowadzono
###by legenda i osie nie zmieniały się podczas animacji
###w przeciwnym wypadku każdy wykres miałby trochę inną skalę na osiach
###oraz w legendzie dopasowaną do danych dla danego roku
xlim(0,60000)+
ylim(0,84)+
scale_size(limits = c(60000,1319000000))+
labs(size="Populacja", color="Kontynent")
})
#wykresy liniowe
##dla karty trzeciej przygotowane zostaną trzy osobne wykresy
output$wykres_liniowy1 <- renderPlot({
gapminder_unfiltered%>%filter(country==input$kraj_liniowy)%>%
ggplot(aes(y=lifeExp,x=year))+
geom_line(color=k3,size=2)+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="",y="średnia długość życia")
})
output$wykres_liniowy2 <- renderPlot({
gapminder_unfiltered%>%filter(country==input$kraj_liniowy)%>%
ggplot(aes(y=pop,x=year))+
geom_line(color=k3,size=2)+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="",y="populacja")
})
output$wykres_liniowy3 <- renderPlot({
gapminder_unfiltered%>%filter(country==input$kraj_liniowy)%>%
ggplot(aes(y=gdpPercap,x=year))+
geom_line(color=k3,size=2)+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="",y="PKB per capita")
})
}
Po przygotowaniu serwera i ui w taki sposób możliwe jest wywołanie samego dashboardu za pomocą funkcji shinyApp.
shinyApp(ui = ui, server = server)
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.
Pakiet mlr3 pozwala na wykorzystanie różnorodnych algorytmów uczenia maszynowego w ujednolicony sposób.
library(mlr3)
Algorytmy te pozwalają przewidzieć klasę do jakiej należy dana obserwacja.
Na przykład w przypadku zbioru danych iris kolumna Species określa przynależność danego kwiatu do jednego z trzech gatunków.
#Wykorzystywany zbiór danych:
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
W celu wytrenowania algorytmu dla danego zbioru danych należy stworzyć zadanie.
Umożliwia to funkcja as_task_classif której pierwszy argument to nasz zbiór danych a drugi to nazwa kolumny w której znajduje się przewidywana klasa.
zadanie <- as_task_classif(iris, target="Species")
zadanie
## <TaskClassif:iris> (150 x 5)
## * Target: Species
## * Properties: multiclass
## * Features (4):
## - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
Należy pamiętać, że kolumna podana jako target musi zawierać zmienną typu factor.
W przypadku zbioru danych iris kolumna Species jest typu factor, jednak jeżeli to zmienimy próba utworzenia zadania zwróci error.
Niezależnie od utworzonego powyżej zadania należy stworzyć obiekt, który zdefiniuje typ algorytmu jaki zostanie wykorzystany.
drzewo_decyzyjne <- lrn("classif.rpart")
Dostępne algorytmy można zobaczyć przywołując następujący obiekt:
mlr_learners
## <DictionaryLearner> with 6 stored values
## Keys: classif.debug, classif.featureless, classif.rpart, regr.debug,
## regr.featureless, regr.rpart
Niewiele algorytmów jest dostępne w ramach podstawowego mlr3.
By uzyskać dostęp do dodatkowych algorytmów należy wczytać następującą bibliotekę.
library(mlr3learners)
Teraz lista dostępnych algorytmów zawiera znacznie więcej elementów.
mlr_learners
## <DictionaryLearner> with 27 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
## classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
## classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
## classif.ranger, classif.rpart, classif.svm, classif.xgboost,
## regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
## regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
## regr.xgboost
Dzięki temu wykorzystać będzie można takie algorytmy jak na przykład k najbliższych sąsiadów.
knn <- lrn("classif.kknn")
Możliwe że wybrany algorytm wymagać będzie instalacji dodatkowego pakietu.
Powyższy algorytm wymaga na przykład pakietu kknn.
Nie trzeba jednak wczytywać pakietu za pomocą funkcji library() - wystarczy że jest on zainstalowany.
Podstawowe zastosowanie algorytmu.
Tak przygotowany algorytm można teraz zastosować dla określonego zadania.
Najpierw konieczne jest wytrenowanie modelu - etap ten można porównać do oszacowania parametrów modelu ekonometrycznego.
Należy zwrócić uwagę na to, że przywołanie $train() zmodyfikuje już istniejący obiekt drzewo_decyzyjne.
ynik nie jest zapisany jako osobny model a automatycznie nadpisuje utworzony wcześniej obiekt dla którego zdefiniowano tylko algorytm.
####przed zastosowaniem $train() model jest pusty
drzewo_decyzyjne$model
## NULL
Zastosowanie algorytmu drzewa decyzyjnego dla zadania klasyfikacji kwiatów powoduje że model nie jest już pusty.
drzewo_decyzyjne$train(zadanie)
drzewo_decyzyjne$model
## n= 150
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)
## 2) Petal.Length< 2.45 50 0 setosa (1.00000000 0.00000000 0.00000000) *
## 3) Petal.Length>=2.45 100 50 versicolor (0.00000000 0.50000000 0.50000000)
## 6) Petal.Width< 1.75 54 5 versicolor (0.00000000 0.90740741 0.09259259) *
## 7) Petal.Width>=1.75 46 1 virginica (0.00000000 0.02173913 0.97826087) *
W celu uzyskania wartości przewidywanych przez model należy zastosować $predict().
W przeciwieństwie do $train() wyniki $predict() należy zapisać jako osobny obiekt.
gatunki_przewidywane <- drzewo_decyzyjne$predict(zadanie)
Warto zauważyć, że wynik tej operacji zwraca tabelę w której znajdują się zarówno wartości rzeczywiste (truth) jak i przewidywane (response).
gatunki_przewidywane
## <PredictionClassif> for 150 observations:
## row_ids truth response
## 1 setosa setosa
## 2 setosa setosa
## 3 setosa setosa
## ---
## 148 virginica virginica
## 149 virginica virginica
## 150 virginica virginica
W celu poprawnej oceny jakości dopasowania modelu należy losowo wydzielić zbiór uczący i testowy.
Zbiór testowy symulować ma trafność przewidywania modelu dla nowych obserwacji.
Posłużyć do tego może funkcja partition.
uczący_testowy <- partition(zadanie)
Funkcja ta zwraca dwie listy id elementów przypisanych do zbioru uczącego (train) i testowego (test).
head(uczący_testowy)
## $train
## [1] 3 4 5 7 8 9 10 11 12 13 14 15 17 19 21 24 25 26
## [19] 27 28 29 30 31 32 36 37 40 41 42 43 45 48 49 50 55 56
## [37] 57 58 59 60 61 62 63 65 66 67 68 70 71 73 75 76 77 79
## [55] 81 82 83 84 85 88 90 91 92 93 94 95 96 97 102 103 104 105
## [73] 107 108 110 112 113 114 115 118 119 121 122 123 125 126 129 130 131 132
## [91] 134 135 138 139 140 141 142 143 144 145 146 147
##
## $test
## [1] 1 2 6 16 18 20 22 23 33 34 35 38 39 44 46 47 51 52 53
## [20] 54 64 69 72 74 78 80 86 87 89 98 99 100 101 106 109 111 116 117
## [39] 120 124 127 128 133 136 137 148 149 150
Domyślnie zbiór uczący stanowić będzie 67% obserwacji z oryginalnego zbioru danych, a zbiór testowy 33%.
By to zmienić można użyć argumentu ratio określającego procent obserwacji który zostanie wylosowany do zbioru uczącego.
Poniższa komenda podzieli obserwacje tak by 50% znalazło się w zbiorze uczącym.
partition(zadanie,ratio = 0.5)
## $train
## [1] 5 6 7 10 12 15 16 17 20 22 23 24 26 27 29 30 32 35 38
## [20] 39 40 41 43 46 50 51 54 57 59 61 63 66 69 70 71 72 74 75
## [39] 76 80 82 83 84 86 89 93 94 95 96 98 101 102 103 106 108 111 113
## [58] 114 116 120 121 122 123 127 129 132 135 136 139 140 142 144 147 149 150
##
## $test
## [1] 1 2 3 4 8 9 11 13 14 18 19 21 25 28 31 33 34 36 37
## [20] 42 44 45 47 48 49 52 53 55 56 58 60 62 64 65 67 68 73 77
## [39] 78 79 81 85 87 88 90 91 92 97 99 100 104 105 107 109 110 112 115
## [58] 117 118 119 124 125 126 128 130 131 133 134 137 138 141 143 145 146 148
By skorzystać z podziału wykonanego za pomocą funkcji partition należy wykorzystać argument row_ids.
Na etapie tworzenia modelu wykorzystany zostanie tylko zbiór uczący.
knn$train(zadanie,row_ids = uczący_testowy$train)
Przewidywanie gatunków dla zbioru testowego.
gatunki_przewidywane_test <- knn$predict(zadanie,row_ids = uczący_testowy$test)
gatunki_przewidywane_test
## <PredictionClassif> for 48 observations:
## row_ids truth response
## 1 setosa setosa
## 2 setosa setosa
## 6 setosa setosa
## ---
## 148 virginica virginica
## 149 virginica virginica
## 150 virginica versicolor
By sprawdzić jakie wartości parametrów zostały ustawione przez $train() wykorzystać można param_set.
knn$param_set
## <ParamSet>
## id class lower upper nlevels default value
## 1: k ParamInt 1 Inf Inf 7 7
## 2: distance ParamDbl 0 Inf Inf 2
## 3: kernel ParamFct NA NA 10 optimal
## 4: scale ParamLgl NA NA 2 TRUE
## 5: ykernel ParamUty NA NA Inf
## 6: store_model ParamLgl NA NA 2 FALSE
Możliwa jest samodzielna modyfikacja parametrów.
Odwołać się do nich można za pomocą nazwy z kolumny id.
Na przykład dla algorytmu najbliższych sąsiadów liczba sąsiadów branych pod uwagę może być zmodyfikowana przy użyciu argumentu k.
knn_k5 <- lrn("classif.kknn",k=5)
knn_k5$train(zadanie,row_ids = uczący_testowy$train)
Wywołując param_set można zaobserwować, że dla nowego modelu k jest równe nie 7 a 5.
knn_k5$param_set
## <ParamSet>
## id class lower upper nlevels default value
## 1: k ParamInt 1 Inf Inf 7 5
## 2: distance ParamDbl 0 Inf Inf 2
## 3: kernel ParamFct NA NA 10 optimal
## 4: scale ParamLgl NA NA 2 TRUE
## 5: ykernel ParamUty NA NA Inf
## 6: store_model ParamLgl NA NA 2 FALSE
Istnieje wiele miar pozwalających na ocenę i porównywanie modeli.
W ramach pakietu mlr3 dostępne są następujące miary .
mlr_measures
## <DictionaryMeasure> with 62 stored values
## Keys: aic, bic, classif.acc, classif.auc, classif.bacc, classif.bbrier,
## classif.ce, classif.costs, classif.dor, classif.fbeta, classif.fdr,
## classif.fn, classif.fnr, classif.fomr, classif.fp, classif.fpr,
## classif.logloss, classif.mauc_au1p, classif.mauc_au1u,
## classif.mauc_aunp, classif.mauc_aunu, classif.mbrier, classif.mcc,
## classif.npv, classif.ppv, classif.prauc, classif.precision,
## classif.recall, classif.sensitivity, classif.specificity, classif.tn,
## classif.tnr, classif.tp, classif.tpr, debug, oob_error, regr.bias,
## regr.ktau, regr.mae, regr.mape, regr.maxae, regr.medae, regr.medse,
## regr.mse, regr.msle, regr.pbias, regr.rae, regr.rmse, regr.rmsle,
## regr.rrse, regr.rse, regr.rsq, regr.sae, regr.smape, regr.srho,
## regr.sse, selected_features, sim.jaccard, sim.phi, time_both,
## time_predict, time_train
Bardziej rozbudowane informacje można uzyskać następująco.
as.data.table(msr())
## key label
## 1: aic Akaika Information Criterion
## 2: bic Bayesian Information Criterion
## 3: classif.acc Classification Accuracy
## 4: classif.auc Area Under the ROC Curve
## 5: classif.bacc Balanced Accuracy
## 6: classif.bbrier Binary Brier Score
## 7: classif.ce Classification Error
## 8: classif.costs Cost-sensitive Classification
## 9: classif.dor Diagnostic Odds Ratio
## 10: classif.fbeta F-beta score
## 11: classif.fdr False Discovery Rate
## 12: classif.fn False Negatives
## 13: classif.fnr False Negative Rate
## 14: classif.fomr False Omission Rate
## 15: classif.fp False Positives
## 16: classif.fpr False Positive Rate
## 17: classif.logloss Log Loss
## 18: classif.mauc_au1p Weighted average 1 vs. 1 multiclass AUC
## 19: classif.mauc_au1u Average 1 vs. 1 multiclass AUC
## 20: classif.mauc_aunp Weighted average 1 vs. rest multiclass AUC
## 21: classif.mauc_aunu Average 1 vs. rest multiclass AUC
## 22: classif.mbrier Multiclass Brier Score
## 23: classif.mcc Matthews Correlation Coefficient
## 24: classif.npv Negative Predictive Value
## 25: classif.ppv Positive Predictive Value
## 26: classif.prauc Precision-Recall Curve
## 27: classif.precision Precision
## 28: classif.recall Recall
## 29: classif.sensitivity Sensitivity
## 30: classif.specificity Specificity
## 31: classif.tn True Negatives
## 32: classif.tnr True Negative Rate
## 33: classif.tp True Positives
## 34: classif.tpr True Positive Rate
## 35: debug Debug Classification Measure
## 36: oob_error Out-of-bag Error
## 37: regr.bias Bias
## 38: regr.ktau Kendall's tau
## 39: regr.mae Mean Absolute Error
## 40: regr.mape Mean Absolute Percent Error
## 41: regr.maxae Max Absolute Error
## 42: regr.medae Median Absolute Error
## 43: regr.medse Median Squared Error
## 44: regr.mse Mean Squared Error
## 45: regr.msle Mean Squared Log Error
## 46: regr.pbias Percent Bias
## 47: regr.rae Relative Absolute Error
## 48: regr.rmse Root Mean Squared Error
## 49: regr.rmsle Root Mean Squared Log Error
## 50: regr.rrse Root Relative Squared Error
## 51: regr.rse Relative Squared Error
## 52: regr.rsq R Squared
## 53: regr.sae Sum of Absolute Errors
## 54: regr.smape Symmetric Mean Absolute Percent Error
## 55: regr.srho Spearman's rho
## 56: regr.sse Sum of Squared Errors
## 57: selected_features Absolute or Relative Frequency of Selected Features
## 58: sim.jaccard Jaccard Similarity Index
## 59: sim.phi Phi Coefficient Similarity
## 60: time_both Elapsed Time
## 61: time_predict Elapsed Time
## 62: time_train Elapsed Time
## key label
## task_type packages predict_type task_properties
## 1: <NA> mlr3 response
## 2: <NA> mlr3 response
## 3: classif mlr3,mlr3measures response
## 4: classif mlr3,mlr3measures prob twoclass
## 5: classif mlr3,mlr3measures response
## 6: classif mlr3,mlr3measures prob twoclass
## 7: classif mlr3,mlr3measures response
## 8: classif mlr3 response
## 9: classif mlr3,mlr3measures response twoclass
## 10: classif mlr3,mlr3measures response twoclass
## 11: classif mlr3,mlr3measures response twoclass
## 12: classif mlr3,mlr3measures response twoclass
## 13: classif mlr3,mlr3measures response twoclass
## 14: classif mlr3,mlr3measures response twoclass
## 15: classif mlr3,mlr3measures response twoclass
## 16: classif mlr3,mlr3measures response twoclass
## 17: classif mlr3,mlr3measures prob
## 18: classif mlr3,mlr3measures prob
## 19: classif mlr3,mlr3measures prob
## 20: classif mlr3,mlr3measures prob
## 21: classif mlr3,mlr3measures prob
## 22: classif mlr3,mlr3measures prob
## 23: classif mlr3,mlr3measures response twoclass
## 24: classif mlr3,mlr3measures response twoclass
## 25: classif mlr3,mlr3measures response twoclass
## 26: classif mlr3,mlr3measures prob twoclass
## 27: classif mlr3,mlr3measures response twoclass
## 28: classif mlr3,mlr3measures response twoclass
## 29: classif mlr3,mlr3measures response twoclass
## 30: classif mlr3,mlr3measures response twoclass
## 31: classif mlr3,mlr3measures response twoclass
## 32: classif mlr3,mlr3measures response twoclass
## 33: classif mlr3,mlr3measures response twoclass
## 34: classif mlr3,mlr3measures response twoclass
## 35: <NA> mlr3 response
## 36: <NA> mlr3 response
## 37: regr mlr3,mlr3measures response
## 38: regr mlr3,mlr3measures response
## 39: regr mlr3,mlr3measures response
## 40: regr mlr3,mlr3measures response
## 41: regr mlr3,mlr3measures response
## 42: regr mlr3,mlr3measures response
## 43: regr mlr3,mlr3measures response
## 44: regr mlr3,mlr3measures response
## 45: regr mlr3,mlr3measures response
## 46: regr mlr3,mlr3measures response
## 47: regr mlr3,mlr3measures response
## 48: regr mlr3,mlr3measures response
## 49: regr mlr3,mlr3measures response
## 50: regr mlr3,mlr3measures response
## 51: regr mlr3,mlr3measures response
## 52: regr mlr3,mlr3measures response
## 53: regr mlr3,mlr3measures response
## 54: regr mlr3,mlr3measures response
## 55: regr mlr3,mlr3measures response
## 56: regr mlr3,mlr3measures response
## 57: <NA> mlr3 response
## 58: <NA> mlr3,mlr3measures response
## 59: <NA> mlr3,mlr3measures response
## 60: <NA> mlr3 <NA>
## 61: <NA> mlr3 <NA>
## 62: <NA> mlr3 <NA>
## task_type packages predict_type task_properties
Podobnie jak w przypadku wybrania używanego algorytmu należy utworzyć obiekt określający, która miara zostanie wykorzystana.
Na przykład w celu obliczenia trafności (ang. accuracy) obiekt należy zdefiniować następująco.
trafność <- msr("classif.acc")
By obliczyć trafność danego modelu na danym zbiorze danych najpierw należy otrzymać przewidywane wartości za pomocą $predict().
gatunki_przewidywane_test_knn_k5 <- knn_k5$predict(zadanie,row_ids = uczący_testowy$test)
gatunki_przewidywane_test_knn_k5
## <PredictionClassif> for 48 observations:
## row_ids truth response
## 1 setosa setosa
## 2 setosa setosa
## 6 setosa setosa
## ---
## 148 virginica virginica
## 149 virginica virginica
## 150 virginica virginica
Po zapisaniu wyniku $predict() można dla tego obiektu obliczyć trafność wykorzystując $score().
Wynik oznacza odsetek poprawnie sklasyfikowanych obserwacji ze zbioru testowego przy pomoc algorytmu k najbliższych sąsiadów z k=5.
gatunki_przewidywane_test_knn_k5$score(trafność)
## classif.acc
## 0.9583333
Algorytmy te pozwalają przewidzieć wartość zmiennej ilościowej.
Tak jak w przypadku klasyfikacji należy utworzyć zadanie.
Dla regresji zamiast funkcji as_task_classif należy wykorzystać as_task_regr.
W tym przykładzie przewidywana będzie szerokość płatka.
zadanie_regresja <- as_task_regr(iris,target = "Petal.Width")
Wybór algorytmu następuje również w ten sam sposób jak w przypadku klasyfikacji.
Dla zadania regresji dostępne są jednak inne algorytmy.
mlr_learners
## <DictionaryLearner> with 27 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
## classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
## classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
## classif.ranger, classif.rpart, classif.svm, classif.xgboost,
## regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
## regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
## regr.xgboost
W omawianym przykładzie zostanie wykorzystany las losowy.
las_losowy <- lrn("regr.ranger")
las_losowy$train(zadanie_regresja,row_ids = uczący_testowy$train)
Wartości przewidywane dla zbioru testowego.
regresja_przewidywane <- las_losowy$predict(zadanie_regresja,row_ids = uczący_testowy$test)
Wiele z miar wykorzystywanych do oceny modeli uczenia maszynowego majacych na celu regresję są analogiczne do tych wykorzystywanych w ekonometrii Przykładem może być MAPE czy MAE.
as.data.table(msr())
## key label
## 1: aic Akaika Information Criterion
## 2: bic Bayesian Information Criterion
## 3: classif.acc Classification Accuracy
## 4: classif.auc Area Under the ROC Curve
## 5: classif.bacc Balanced Accuracy
## 6: classif.bbrier Binary Brier Score
## 7: classif.ce Classification Error
## 8: classif.costs Cost-sensitive Classification
## 9: classif.dor Diagnostic Odds Ratio
## 10: classif.fbeta F-beta score
## 11: classif.fdr False Discovery Rate
## 12: classif.fn False Negatives
## 13: classif.fnr False Negative Rate
## 14: classif.fomr False Omission Rate
## 15: classif.fp False Positives
## 16: classif.fpr False Positive Rate
## 17: classif.logloss Log Loss
## 18: classif.mauc_au1p Weighted average 1 vs. 1 multiclass AUC
## 19: classif.mauc_au1u Average 1 vs. 1 multiclass AUC
## 20: classif.mauc_aunp Weighted average 1 vs. rest multiclass AUC
## 21: classif.mauc_aunu Average 1 vs. rest multiclass AUC
## 22: classif.mbrier Multiclass Brier Score
## 23: classif.mcc Matthews Correlation Coefficient
## 24: classif.npv Negative Predictive Value
## 25: classif.ppv Positive Predictive Value
## 26: classif.prauc Precision-Recall Curve
## 27: classif.precision Precision
## 28: classif.recall Recall
## 29: classif.sensitivity Sensitivity
## 30: classif.specificity Specificity
## 31: classif.tn True Negatives
## 32: classif.tnr True Negative Rate
## 33: classif.tp True Positives
## 34: classif.tpr True Positive Rate
## 35: debug Debug Classification Measure
## 36: oob_error Out-of-bag Error
## 37: regr.bias Bias
## 38: regr.ktau Kendall's tau
## 39: regr.mae Mean Absolute Error
## 40: regr.mape Mean Absolute Percent Error
## 41: regr.maxae Max Absolute Error
## 42: regr.medae Median Absolute Error
## 43: regr.medse Median Squared Error
## 44: regr.mse Mean Squared Error
## 45: regr.msle Mean Squared Log Error
## 46: regr.pbias Percent Bias
## 47: regr.rae Relative Absolute Error
## 48: regr.rmse Root Mean Squared Error
## 49: regr.rmsle Root Mean Squared Log Error
## 50: regr.rrse Root Relative Squared Error
## 51: regr.rse Relative Squared Error
## 52: regr.rsq R Squared
## 53: regr.sae Sum of Absolute Errors
## 54: regr.smape Symmetric Mean Absolute Percent Error
## 55: regr.srho Spearman's rho
## 56: regr.sse Sum of Squared Errors
## 57: selected_features Absolute or Relative Frequency of Selected Features
## 58: sim.jaccard Jaccard Similarity Index
## 59: sim.phi Phi Coefficient Similarity
## 60: time_both Elapsed Time
## 61: time_predict Elapsed Time
## 62: time_train Elapsed Time
## key label
## task_type packages predict_type task_properties
## 1: <NA> mlr3 response
## 2: <NA> mlr3 response
## 3: classif mlr3,mlr3measures response
## 4: classif mlr3,mlr3measures prob twoclass
## 5: classif mlr3,mlr3measures response
## 6: classif mlr3,mlr3measures prob twoclass
## 7: classif mlr3,mlr3measures response
## 8: classif mlr3 response
## 9: classif mlr3,mlr3measures response twoclass
## 10: classif mlr3,mlr3measures response twoclass
## 11: classif mlr3,mlr3measures response twoclass
## 12: classif mlr3,mlr3measures response twoclass
## 13: classif mlr3,mlr3measures response twoclass
## 14: classif mlr3,mlr3measures response twoclass
## 15: classif mlr3,mlr3measures response twoclass
## 16: classif mlr3,mlr3measures response twoclass
## 17: classif mlr3,mlr3measures prob
## 18: classif mlr3,mlr3measures prob
## 19: classif mlr3,mlr3measures prob
## 20: classif mlr3,mlr3measures prob
## 21: classif mlr3,mlr3measures prob
## 22: classif mlr3,mlr3measures prob
## 23: classif mlr3,mlr3measures response twoclass
## 24: classif mlr3,mlr3measures response twoclass
## 25: classif mlr3,mlr3measures response twoclass
## 26: classif mlr3,mlr3measures prob twoclass
## 27: classif mlr3,mlr3measures response twoclass
## 28: classif mlr3,mlr3measures response twoclass
## 29: classif mlr3,mlr3measures response twoclass
## 30: classif mlr3,mlr3measures response twoclass
## 31: classif mlr3,mlr3measures response twoclass
## 32: classif mlr3,mlr3measures response twoclass
## 33: classif mlr3,mlr3measures response twoclass
## 34: classif mlr3,mlr3measures response twoclass
## 35: <NA> mlr3 response
## 36: <NA> mlr3 response
## 37: regr mlr3,mlr3measures response
## 38: regr mlr3,mlr3measures response
## 39: regr mlr3,mlr3measures response
## 40: regr mlr3,mlr3measures response
## 41: regr mlr3,mlr3measures response
## 42: regr mlr3,mlr3measures response
## 43: regr mlr3,mlr3measures response
## 44: regr mlr3,mlr3measures response
## 45: regr mlr3,mlr3measures response
## 46: regr mlr3,mlr3measures response
## 47: regr mlr3,mlr3measures response
## 48: regr mlr3,mlr3measures response
## 49: regr mlr3,mlr3measures response
## 50: regr mlr3,mlr3measures response
## 51: regr mlr3,mlr3measures response
## 52: regr mlr3,mlr3measures response
## 53: regr mlr3,mlr3measures response
## 54: regr mlr3,mlr3measures response
## 55: regr mlr3,mlr3measures response
## 56: regr mlr3,mlr3measures response
## 57: <NA> mlr3 response
## 58: <NA> mlr3,mlr3measures response
## 59: <NA> mlr3,mlr3measures response
## 60: <NA> mlr3 <NA>
## 61: <NA> mlr3 <NA>
## 62: <NA> mlr3 <NA>
## task_type packages predict_type task_properties
MAPE <- msr("regr.mape")
Wartość MAPE uzyskana przez model.
regresja_przewidywane$score(MAPE)
## regr.mape
## 0.2021149