1 Podstawowa grafika w
R
UWAGA: Ta części laboratorium 4 dotyczy
podstawowej grafiki w R. Należy “wypróbować” działanie omawianych
argumentów - np. poprzez dobór kolorów na wykresie, własny opis osi,
własny tytuł wykresu itd. Na koniec kilka prostych zadań.
UWAGA: W jednym z kolejnych laboratoriów omówimy
pakiet ggplot2, który ma dużo większe możliwości.
Podstawowa metoda tworzenia wykresów w R jest użycie polecenia
plot(x,y) , gdzie x jest wektorem argumentów
(oś OX), a y jest wektorem wartości (oś OY).
Polecenie plot pozwala również na ustawienie zakresów
osi, nadanie osiom nazw itp. Szczegółową pomoc na temat obu opcji można
uzyskać wpisując polecenie ? plot.default.
Zaczynamy od prostego wykresu punktowego oraz kawałkami liniowego




Listę nazw kolorów dostępnych w R można uzyskać poprzez polecenie
colors(), uwaga: w ten sposób otrzymana
lista jest dość długa… dlatego też ograniczymy się do wyświetlenia 6
pierwszych elementów tej listy za pomocą polecenia
head:
## [1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
## [5] "antiquewhite2" "antiquewhite3"
UWAGA: Kolory można podawać też za pomocą kodu hex.
Wpisując w google hasło color picker lub
selektor kolorów otrzymamy stronę, gdzie można ręcznie
wybrać kolor, a jego kod hex pojawi się w odpowiednim polu.
x=seq(1,10,by=.01) # więcej punktów, "wygładzenie" paraboli
y=x*x
plot(x,y,type='l',col="#21b8ae") # kod hex umieszczamy w cudzysłowie, znak # jest obowiązkowy

Osiom i wykresowi można nadać nazwy:

1.1 Dodawanie punktów lub
linii do wykresu za pomocą poleceń points oraz
lines
Dodawanie punktów do wykresu za pomocą points
y=x*x
plot(x,y,type='l',col='red',xlab='argumenty x',ylab='kwadrat',main='Tytuł wykresu')
x2=seq(1,10,by=.5)
y2=exp(x2)
points(x2,y2,col='blue',pch='k')
y2=x2*sqrt(x2)
points(x2,y2,col='#A689B8',pch=9)

Parametr pch powyżej służy do określenia symbolu, jaki
zostanie użyty do zaznaczenia punktu na wykresie. Może to być symbol
typu litera, lub znak specjalny - w pomocy ? pch znajduje
się lista symboli.
Dodawanie linii do wykresu za pomocą lines
y=x*x
plot(x,y,type='l',col='red',xlab='argumenty x',ylab='kwadrat',main='Tytuł wykresu')
y2=exp(x)
lines(x,y2,col='gray')

1.2 Podzielenie okna na
części
par(mfrow=c(1,2)) #podział okna graficznego na 1*2 podokna
plot(x,sin(x),type='l')
plot(x,cos(x),type='l')

1.3 Zarządzanie oknami
graficznymi
W RStudio za każdym razem wywołania polecenia plot
tworzone jest nowe okno graficzne, a stare okna są zachowywane. Można
przechodzić między rysunkami za pomocą strzałek w lewym, górnym
rogu:

Przycisk “Zoom” otwiera rysunek w nowym, osobnym oknie.
Za pomocą “Export” można zapisać aktualny rysunek do
pliku.
“Czerwony krzyżyk” kasuje aktualny rysunek.
“Miotła” usuwa wszystkie rysunki
1.4 Zapisywanie
grafiki
Zapisanie grafiki, zależy głównie od posiadanego systemu
operacyjnego. Można wybrać różne formaty zapisu grafiki, m.in:
jpeg
jpeg()
png
png()
win.metafile
win.metafile()
najlepszy wybór do użycia w Word
pdf
pdf()
najlepszy wybór do użycia w pdflatex
postscript
postscript()
najlepszy wybór do użycia w latex i Open Office
Dla powyższych funkcji możemy użyć między innymi takich argumentów
jak: width oraz height, aby dostosować
wysokość oraz szerokość grafiki (podawane wartości w pikselach). Dla
formatu jpeg możemy również dodać argument quality, aby
zmniejszyć lub zwiększyć poziom kompresji (podana wartość powinna być
procentowa z zakresy \((0,100)\)).
Ogólna metoda, która działa niezależnie od systemu operacyjnego,
polega na wykonaniu poniższego kodu:
jpeg('rplot.jpg', width = 500, height=500, quality = 70)# zapisuje grafikę w formacie jpg pod nazwą rplot
plot(x,y)
dev.off()
Możemy również podać wysokość i szerokość grafiki w cm
lub mm za pomocą używając argumentu units. W
tym przypadku warto również ustawić rozdzielczość używając
res.
Grafika zostanie zapisana w chwilowo aktywnym katalogu, który można
sprawdzić za pomocą komendy getwd(). W celu zapisania
grafiki w innym wybrany katalogi można wywołać funkcję
jpeq() podając ścieżkę dostępu
jpeg('/Moja_ścieżka_dostępu/rplot.jpg') lub zmieniać
aktualny katalog za pomocą komendy setwd().
Inny sposób zmiany aktualnego katalogu to wybranie Files
i odpowiedniego katalogu w prawym dolnym oknie RStudio, a następnie
kliknięcie niebieskiego trybiku i wybranie Set As Working
Directory.

Warto również dodać, że możemy do tych funkcji przekazywać dodatkowe
argumentu (więcej informacji w helpie) takie jak, np. width, height,… co
może być przydatne, gdy chcemy mieć zapisanych wiele obrazków o takich
samych wymiarach.
Gdy operujesz systemem Windows lub Mac, graficzny interfejs ułatwia
zapisywanie plików.
Na systemie Windows, wystarczy kliknąć prawym przyciskiem myszki w
okno wykresu i wybrać opcję np. “Zapisz jako…”.
Na systemie Mac, klikając w okno wykresy kliknij “Plik->Zapisz”
(zostanie on wtedy zapisany w formacie pdf) lub “Plik->Zapisz jako”,
aby zapisać w innym formacie.
1.5 Zadania -
grafika
1.5.1 Zadanie 1
a. Narysować wykres funkcji \(\sin\)
na przedziale \([0,10]\)
b. Narysować ponownie wykres funkcji \(\sin\), dodając tym razem zakres osi OY
\([-1.5,1.5]\) (opcja
ylim). Nadać wykresowi tytuł np “Wykres funkcji sinus”, osi
OX nazwę “Kąt”, a osi OY nazwę “sinus”.
c. Dodać linię o równaniu \(y=\frac{x}{2
\pi}\) do poprzedniego wykresu za pomocą funkcji
lines. Użyć np. koloru czerwonego.
d. Dodać do poprzedniego wykresu punkty o współrzędnych \((0,1.3)\) , \((1,1)\) oraz \((2,1)\) korzystając z funkcji
points - punkty narysować niebieskim symbolem ‘*’.
1.5.2 Zadanie 2
Podzielić okno graficzne na 2*2 części i narysować:
wykres funkcji \(\cos\) w lewym
górnym rogu
wykres funkcji \(\sin\) w prawym
górnym rogu
wykres funkcji \(\exp\) w lewym
dolnym rogu
wykres funkcji \(\log\) w prawym
dolnym rogu
Nadać odpowiednie tytuły poszczególnym wykresom i zapisać wykres do
pliku.
1.5.3 Zadanie 3
Narysować ponownie wykres funkcji kwadratowej:
x=seq(1,10,by=.01) # więcej punktów, "wygładzenie" paraboli
y=x*x
plot(x,y,type='l',col='red') # kolor wykresu, tutaj 'red'

Polecenie ? plot.default (wpisane w konsoli) wyświetla
pomoc na temat dostępnych argumentów polecenia plot.
Korzystając z pomocy sprawdzić działanie wybranych argumentów, w tym
type , log, main,
sub, axes, frame.plot ,
pch, cex…
Wykonać osobne wykresy, za każdym razem w tytule wykresu umieszczając
testowany argument i jego wartość, np “axes=FALSE”.
2 Importowanie i
eksportowanie danych
2.1 Dane z bibliotek
Część zbiorów danych R jest umieszczanych w odpowiednich
bibliotekach. Informacje na temat innych “wbudowanych” zbiorów danych
możemy uzyskać poprzez pomoc ? datasets. W ogólnym
przypadku pakiet ładujemy poleceniem
library("nazwa_pakietu"), a dane
data("nazwa_danych").
2.2 Dane w formacie
tekstowym, csv (comma separated values).
Plik csv jest popularnym formatem przechowywania danych. Niestety,
format ten nie ma ustandaryzowanej struktury. Kolejne kolumny oddzielane
są od siebie znakiem separującym, którym może być przecinek, średnik,
tabulacja. “Kropka dziesiętna” przy zapisie liczb może być oznaczana
przez znak . lub , (kropka lub przecinek).
2.2.1 Import danych za
pomocą kreatora RStudio
Dla celów ćwiczeniowych należy ściągnąć ze strony przedmiotu plik
Student_performance_data.csv i zapisać ten plik na dysku
(najlepiej w swoim ulubionym folderze).
Kreator importu znajduje się w prawym górnym oknie zmiennych
środowiskowych:
Import danych
Następnie z menu importu wybieramy pierwszą pozycję:
dane tekstowe
i odszukujemy zapisany wcześniej plik
Student_performance_data.csv na dysku. Pojawi się kolejne
okienko, gdzie na razie nie importujemy danych przed ustawieniem
odpowiednich parametrów (patrz informacja pod obrazkiem
!!!)
Okno importu danych
Istotne pola:
Nazwa zmiennej (ramki danych), pod którą będą dostępne dane po
imporcie. Można pozostawić bez zmian.
Heading. Pierwsza linia zbioru danych może
zawierać (i tutaj tak jest) nazwy zmiennych (kolumn) jak w ramkach
danych. Tutaj tak jest, należy zmienić na YES.
Pierwsza kolumna może zawierać nazwy/indeksy obserwacji.
Można pozostawić bez zmian.
Separator kolumn - należy zmienić na
comma jeżeli jest to co innego (tutaj ustawiony
jest średnik). Dolna część okna powinna się zmienić. To, jaki separator
kolumn należy wybrać, zależy od pliku.
Znak “kropki dziesiętnej” należy ustawić na
period, o ile jest coś innego.
Pozwala na potraktowanie łańcuchów tekstu jako zmiennych
jakościowych. Nie zmieniamy.
2.2.2 Podgląd danych
Wygodny podgląd danych w RStudio mamy poprzez kliknięcie lupy/tabelki
w oknie Enviroment:

2.2.3 Opis
zaimportowanych danych
Zbiór danych zawiera informacje na temat uczniów szkół średnich
szczegółowo opisując ich dane demograficzne, nawyki związane z nauką,
zaangażowanie rodziców, zajęcia pozalekcyjne i wyniki w nauce. Zmienna
docelowa, GradeClass, klasyfikuje oceny uczniów na różne kategorie.
W zbiorze danych mamy:
StudentID: Numer identyfikujący studenta,
Age: Wiek studenta,
Gender: Płeć studenta, 0 oznacza mężczyznę, a 1 kobietę,
Ethnicity: grupę etyczną do której należy student:
0: Kaukaz,
1: Afroamerykanin,
2: Azjata,
3: Inne.
ParentalEducation: Poziom wykształcenia rodziców, według
poniższych oznaczeń:
0: brak,
1: szkoła wyższa,
2: jakiś koledż,
3: licencjat,
4: wyżej niż licencjat,
StudyTimeWeekly: tygodniowy czas poświęcony nauce,
Absences: Liczba nieobecności w roku szkolnym,
Tutoring: cykl indywidualnych spotkań, 0 oznacza nie, a 1 oznacza
tak,
ParentalSupport: poziom wsparcia rodziców według poniższych
oznaczeń:
0: brak,
1: niski,
2: umiarkowany,
3: wysoki,
4: bardzo wysoki.
Extracurricular: Uczestnictwo w dodatkowych aktywnościach, 0
oznacza nie, 1 oznacza tak,
Sports: aktywność sportowa, 0 oznacza nie, 1 oznacza
tak,
Music: aktywność w działalnościach muzycznych, 0 oznacza nie, 1
oznacza tak,
Volunteering: wolontariat, 0 oznacza nie, 1 oznacza tak,
GPA: Średnia ocen,
GradeClass: klasyfikacja studenta na poziomie średniej ocen,
tj:
- 0: GPA\(\ge\) 3.5,
- 1: 3.0 \(\le\) GPA \(<\) 3.5,
- 2: 2.5 \(\le\) GPA \(<\) 3.0,
- 3: 2.0 \(\le\) GPA \(<\) 2.5,
- 4: 2.0 \(\le\) GPA \(<\) 2.5
2.2.4 Zadania - import
danych
2.2.4.1 Zadanie - praca z
zaimportowanymi danymi Student_performance_data.
Sprawdź jak dużo jest obserwacji w zbiorze danych.
Wyświetl informacje na temat 10 studentów którzy otrzymali
najwyższą średnią.
Napisz funkcję sprawdzająca, czy uczeń otrzymał odpowiednią
GradeClass na podstawie uzyskanej średniej ocen. Funkcja powinna zwraca
listę zawierająca numery indeksów uczniów dla których nastąpiła pomyłka
oraz liczbę, ile pomyłek jest w zbiorze danych.
Ile procent studentów realizowało co najmniej 3 spośród 4
dodatkowych aktywności (Extracurricular, Sports, Music, Volunteering).
Jaką średnią oni mieli.
Oblicz współczynnik korelacji Pearsona (polecenie
col) i narysuj wykres zależności (polecenie
plot) dla:
średniej ocen GPA oraz czasu nauki
StudyTimeWeekly,
średniej ocen GPA oraz nieobecności
Absences.
2.2.5 Import danych za
pomocą polecenia read.table()
Podstawowa składnia polecenia read.table() umożliwiająca
import danych jak w kreatorze wyżej ma postać:
dane_studenci=read.table(file="C:\\Users\\moje\\Desktop\\Student_performance_data.csv", sep=",", dec=".",header=TRUE)
gdzie
“dane_studenci” to nazwa tworzonej ramki danych,
file - określa położenie pliku na dysku.
UWAGA: konieczne są podwójne slashe, tj
\\ w określaniu lokalizacji pliku! Można też użyć
/ (pojedynczy)
sep, dec - określają odpowiednio separator kolumn i kropkę
dziesiętną,
header - czy pierwszy wiersz zawiera nazwy zmiennych.
Więcej opcji - w pomocy.
Inny sposób wczytania danych, jeżeli dane znajdują się w bieżącym
katalogu:
2.2.6 Zadanie -
wczytywanie danych
2.2.6.1 Zadanie
Wczytaj swoje dane z dysku pod swoją nazwą (parametrów nie zmieniać,
może to tylko zaszkodzić). Lokalizację pliku w Windows można znaleźć
klikając prawym klawiszem myszy, “właściwości”, ogólne. Pamiętamy o
podwójnych slashach. Sprawdzić w podglądzie danych RStudio zawartość
zaimportowanej ramki danych.
Uwaga: Polecenie read.table() ma duża
liczbę argumentów (a zatem i możliwości), przez co może działać wolno w
przypadku dużej ilości danych. Można wtedy skorzystać z plecenia
fread() z pakietu data.table.
Uwaga: w pakiecie utils znajdują się
polecenia read.csv(), read.csv2() ,
read.delim(), read.delim() mające takie same
działanie jak read.table(), ale pewne argumenty mają
domyślnie zdefiniowane.
Uwaga: zamiast lokalizacji pliku na dysku można
podać jego adres internetowy
2.2.7 Zapisywanie danych
do pliku tekstowego
Składnia polecenia write.table() jest podobna do składni
polecenia read.table. W szczególności określamy dane, plik,
separator, znak kropki dziesiętnej, informacje o nagłówkach kolumn i
wierszy, znak końca linii (eol). Przykładowo, zapiszemy do pliku
poniższą ramkę danych:
#tworzymy przykładową ramkę danych
Francja=as.data.frame(matrix(c(12220,15310,112958,8960,12125,6596,6999,40244,6170,8233,7223,10921,46146,4661,6653,357,395,1247,279,553,2239,3111,7629,4013,3178),ncol=5))
names(Francja)=c('n.human','n.scisle','medyczne','sportowe','techniczne')
row.names(Francja)=c('Bordeaux','Lyon','Paryz','Rennes','Tuluza')
write.table(Francja, file="C:\\Users\\moje\\Desktop\\frans.csv", sep=";", dec=".",col.names=TRUE, row.names=TRUE, eol="\n")
2.2.8 Zadania z
zapisywaniem do pliku
2.2.8.1 Zadanie 1
Otworzyć zapisany plik w notatniku i sprawdzić zawartość (czy
rzeczywiście zapisała nam się ramka danych).
2.2.8.2 Zadanie 2
Zapisać ramkę danych gotowego zbioru danych iris do
pliku. Otworzyć zapisany plik.
Uwagi
Polecenie
## "x"
## "1" 0.356241206172854
## "2" 0.47072004689835
## "3" 0.450486788060516
## "4" 0.145444292575121
## "5" 0.96163277537562
## "6" 0.262194738024846
## "7" 0.12822967977263
## "8" 0.350637595402077
## "9" 0.51264618569985
## "10" 0.0361613479908556
“zapisuje” wektor na ekranie.
Polecenie
“zapisuje” wektor do schowka systemowego. Można je “wkleić” za pomocą
ctrl+v.
3 Importowanie danych w
formacie Excela
Dla celów ćwiczeniowych należy ze strony przedmiotu ściągnąć plik
Students_performance.xlsx i zapisać ten plik na dysku
(najlepiej w swoim ulubionym folderze).
3.1 Import danych za
pomocą kreatora
Ponownie uruchamiamy kreator importu:
Import danych - excel
Tym razem wybieramy Excela.
Excel - to nie było trudne…
RStudio może chcieć na tym etapie zainstalować dodatkowe pakiety
(jednorazowo).
Wskazujemy odpowiedni plik na dysku (można też adres
internetowy).

W kreatorze importu warto zwrócić uwagę na:
można ramce danych nadać własną nazwę,
pierwszy wiersz odpowiada za nazwy zmiennych, warto
zaznaczyć,
wybór arkusza w pliku Excela, tutaj jest i tak tylko
jeden
3.2 Import danych Excel -
polecenie z pakietu openxlsx
W standardowy sposób, o ile nie jest dostępny, instalujemy pakiet
openxlsx.
Ładujemy pakiet poleceniem library("openxlsx").
Polecenie importu danych z pliku
Students_performance.xlsx ma postać:
dane_studentow=read.xlsx("C:\\Usersxxxxxx\\Students_performance.xlsx", sheet=1),
gdzie należy podać położenie pliku na dysku.
4 Importowanie danych w
formacie Matlaba
Jeden ze sposobów na importowanie danych w formacie Matlab (pliki z
rozszerzeniem .mat) jest wykorzystanie funkcji readMat z
pakietu R.matlab.
Może być wymagane za pierwszym razem zainstalowanie pakietu
R.matlab (górny pasek, Tools, InstallPackages).
Tym razem zaimportujemy dane bezpośrednio ze strony www
library("R.matlab")
#options(max.print=5000) # czytaj UWAGA poniżej
matlab1=readMat("https://home.agh.edu.pl/~karolinm/labs_wpdad/matlab_dane.mat")
Dane wczytywane są w postaci listy kolejnych obiektów importowanego
pliku.
Oczywiście, można plik ściągnąć na dysk i zaimportować dane podając
ścieżkę dostępu do pliku na dysku.
4.1 Zadanie 1
Co znajduje się w zaimportowanym pliku (str,
summary)? Wskazówka: wartości numeryczne w pliku są losowe,
nie mają żadnej interpretacji.
UWAGA: ze względu na pewne ograniczenia, może
pojawić się w danych komunikat postaci “reached
getOption(”max.print”) – omitted” w przypadku próby wyświetlenia
całej zaimportowanej listy. W takiej sytuacji można zmienić wartość
max.print jak w powyższym kodzie. Nie ma potrzeby ponownego
importu, R zaakceptował dane, ale nie uważa za stosowne wyświetlania
wszystkiego co użyszkodnik zechce.
4.2 Dostęp do
zaimportowanych danych, typy danych…
## [1] TRUE
## $A
## [,1] [,2] [,3] [,4]
## [1,] 0.8354046 0.9431698 0.78962047 0.6534568
## [2,] 0.8357133 0.3214731 0.79918504 0.4896553
## [3,] 0.0498575 0.8064668 0.04956477 0.9728522
## [4,] 0.5458862 0.6013988 0.28319863 0.7484899
## [1] FALSE
## [,1] [,2] [,3] [,4]
## [1,] 0.8354046 0.9431698 0.78962047 0.6534568
## [2,] 0.8357133 0.3214731 0.79918504 0.4896553
## [3,] 0.0498575 0.8064668 0.04956477 0.9728522
## [4,] 0.5458862 0.6013988 0.28319863 0.7484899
## [1] TRUE
## [1] 0.9431698
1 Podstawowa grafika w R
UWAGA: Ta części laboratorium 4 dotyczy podstawowej grafiki w R. Należy “wypróbować” działanie omawianych argumentów - np. poprzez dobór kolorów na wykresie, własny opis osi, własny tytuł wykresu itd. Na koniec kilka prostych zadań.
UWAGA: W jednym z kolejnych laboratoriów omówimy pakiet ggplot2, który ma dużo większe możliwości.
Podstawowa metoda tworzenia wykresów w R jest użycie polecenia
plot(x,y) , gdzie x jest wektorem argumentów
(oś OX), a y jest wektorem wartości (oś OY).
Polecenie plot pozwala również na ustawienie zakresów
osi, nadanie osiom nazw itp. Szczegółową pomoc na temat obu opcji można
uzyskać wpisując polecenie ? plot.default.
Zaczynamy od prostego wykresu punktowego oraz kawałkami liniowego
Listę nazw kolorów dostępnych w R można uzyskać poprzez polecenie
colors(), uwaga: w ten sposób otrzymana
lista jest dość długa… dlatego też ograniczymy się do wyświetlenia 6
pierwszych elementów tej listy za pomocą polecenia
head:
## [1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
## [5] "antiquewhite2" "antiquewhite3"
UWAGA: Kolory można podawać też za pomocą kodu hex.
Wpisując w google hasło color picker lub
selektor kolorów otrzymamy stronę, gdzie można ręcznie
wybrać kolor, a jego kod hex pojawi się w odpowiednim polu.
x=seq(1,10,by=.01) # więcej punktów, "wygładzenie" paraboli
y=x*x
plot(x,y,type='l',col="#21b8ae") # kod hex umieszczamy w cudzysłowie, znak # jest obowiązkowy Osiom i wykresowi można nadać nazwy:
1.1 Dodawanie punktów lub
linii do wykresu za pomocą poleceń points oraz
lines
Dodawanie punktów do wykresu za pomocą points
y=x*x
plot(x,y,type='l',col='red',xlab='argumenty x',ylab='kwadrat',main='Tytuł wykresu')
x2=seq(1,10,by=.5)
y2=exp(x2)
points(x2,y2,col='blue',pch='k')
y2=x2*sqrt(x2)
points(x2,y2,col='#A689B8',pch=9)

Parametr pch powyżej służy do określenia symbolu, jaki
zostanie użyty do zaznaczenia punktu na wykresie. Może to być symbol
typu litera, lub znak specjalny - w pomocy ? pch znajduje
się lista symboli.
Dodawanie linii do wykresu za pomocą lines
y=x*x
plot(x,y,type='l',col='red',xlab='argumenty x',ylab='kwadrat',main='Tytuł wykresu')
y2=exp(x)
lines(x,y2,col='gray')

1.2 Podzielenie okna na
części
par(mfrow=c(1,2)) #podział okna graficznego na 1*2 podokna
plot(x,sin(x),type='l')
plot(x,cos(x),type='l')

1.3 Zarządzanie oknami
graficznymi
W RStudio za każdym razem wywołania polecenia plot
tworzone jest nowe okno graficzne, a stare okna są zachowywane. Można
przechodzić między rysunkami za pomocą strzałek w lewym, górnym
rogu:

Przycisk “Zoom” otwiera rysunek w nowym, osobnym oknie.
Za pomocą “Export” można zapisać aktualny rysunek do
pliku.
“Czerwony krzyżyk” kasuje aktualny rysunek.
“Miotła” usuwa wszystkie rysunki
1.4 Zapisywanie
grafiki
Zapisanie grafiki, zależy głównie od posiadanego systemu
operacyjnego. Można wybrać różne formaty zapisu grafiki, m.in:
jpeg
jpeg()
png
png()
win.metafile
win.metafile()
najlepszy wybór do użycia w Word
pdf
pdf()
najlepszy wybór do użycia w pdflatex
postscript
postscript()
najlepszy wybór do użycia w latex i Open Office
Dla powyższych funkcji możemy użyć między innymi takich argumentów
jak: width oraz height, aby dostosować
wysokość oraz szerokość grafiki (podawane wartości w pikselach). Dla
formatu jpeg możemy również dodać argument quality, aby
zmniejszyć lub zwiększyć poziom kompresji (podana wartość powinna być
procentowa z zakresy \((0,100)\)).
Ogólna metoda, która działa niezależnie od systemu operacyjnego,
polega na wykonaniu poniższego kodu:
jpeg('rplot.jpg', width = 500, height=500, quality = 70)# zapisuje grafikę w formacie jpg pod nazwą rplot
plot(x,y)
dev.off()
Możemy również podać wysokość i szerokość grafiki w cm
lub mm za pomocą używając argumentu units. W
tym przypadku warto również ustawić rozdzielczość używając
res.
Grafika zostanie zapisana w chwilowo aktywnym katalogu, który można
sprawdzić za pomocą komendy getwd(). W celu zapisania
grafiki w innym wybrany katalogi można wywołać funkcję
jpeq() podając ścieżkę dostępu
jpeg('/Moja_ścieżka_dostępu/rplot.jpg') lub zmieniać
aktualny katalog za pomocą komendy setwd().
Inny sposób zmiany aktualnego katalogu to wybranie Files
i odpowiedniego katalogu w prawym dolnym oknie RStudio, a następnie
kliknięcie niebieskiego trybiku i wybranie Set As Working
Directory.

Warto również dodać, że możemy do tych funkcji przekazywać dodatkowe
argumentu (więcej informacji w helpie) takie jak, np. width, height,… co
może być przydatne, gdy chcemy mieć zapisanych wiele obrazków o takich
samych wymiarach.
Gdy operujesz systemem Windows lub Mac, graficzny interfejs ułatwia
zapisywanie plików.
Na systemie Windows, wystarczy kliknąć prawym przyciskiem myszki w
okno wykresu i wybrać opcję np. “Zapisz jako…”.
Na systemie Mac, klikając w okno wykresy kliknij “Plik->Zapisz”
(zostanie on wtedy zapisany w formacie pdf) lub “Plik->Zapisz jako”,
aby zapisać w innym formacie.
1.5 Zadania -
grafika
1.5.1 Zadanie 1
a. Narysować wykres funkcji \(\sin\)
na przedziale \([0,10]\)
b. Narysować ponownie wykres funkcji \(\sin\), dodając tym razem zakres osi OY
\([-1.5,1.5]\) (opcja
ylim). Nadać wykresowi tytuł np “Wykres funkcji sinus”, osi
OX nazwę “Kąt”, a osi OY nazwę “sinus”.
c. Dodać linię o równaniu \(y=\frac{x}{2
\pi}\) do poprzedniego wykresu za pomocą funkcji
lines. Użyć np. koloru czerwonego.
d. Dodać do poprzedniego wykresu punkty o współrzędnych \((0,1.3)\) , \((1,1)\) oraz \((2,1)\) korzystając z funkcji
points - punkty narysować niebieskim symbolem ‘*’.
1.5.2 Zadanie 2
Podzielić okno graficzne na 2*2 części i narysować:
wykres funkcji \(\cos\) w lewym
górnym rogu
wykres funkcji \(\sin\) w prawym
górnym rogu
wykres funkcji \(\exp\) w lewym
dolnym rogu
wykres funkcji \(\log\) w prawym
dolnym rogu
Nadać odpowiednie tytuły poszczególnym wykresom i zapisać wykres do
pliku.
1.5.3 Zadanie 3
Narysować ponownie wykres funkcji kwadratowej:
x=seq(1,10,by=.01) # więcej punktów, "wygładzenie" paraboli
y=x*x
plot(x,y,type='l',col='red') # kolor wykresu, tutaj 'red'

Polecenie ? plot.default (wpisane w konsoli) wyświetla
pomoc na temat dostępnych argumentów polecenia plot.
Korzystając z pomocy sprawdzić działanie wybranych argumentów, w tym
type , log, main,
sub, axes, frame.plot ,
pch, cex…
Wykonać osobne wykresy, za każdym razem w tytule wykresu umieszczając
testowany argument i jego wartość, np “axes=FALSE”.
1.1 Dodawanie punktów lub
linii do wykresu za pomocą poleceń points oraz
lines
Dodawanie punktów do wykresu za pomocą points
y=x*x
plot(x,y,type='l',col='red',xlab='argumenty x',ylab='kwadrat',main='Tytuł wykresu')
x2=seq(1,10,by=.5)
y2=exp(x2)
points(x2,y2,col='blue',pch='k')
y2=x2*sqrt(x2)
points(x2,y2,col='#A689B8',pch=9)Parametr pch powyżej służy do określenia symbolu, jaki
zostanie użyty do zaznaczenia punktu na wykresie. Może to być symbol
typu litera, lub znak specjalny - w pomocy ? pch znajduje
się lista symboli.
Dodawanie linii do wykresu za pomocą lines
y=x*x
plot(x,y,type='l',col='red',xlab='argumenty x',ylab='kwadrat',main='Tytuł wykresu')
y2=exp(x)
lines(x,y2,col='gray')1.2 Podzielenie okna na części
par(mfrow=c(1,2)) #podział okna graficznego na 1*2 podokna
plot(x,sin(x),type='l')
plot(x,cos(x),type='l')1.3 Zarządzanie oknami graficznymi
W RStudio za każdym razem wywołania polecenia plot
tworzone jest nowe okno graficzne, a stare okna są zachowywane. Można
przechodzić między rysunkami za pomocą strzałek w lewym, górnym
rogu:
Przycisk “Zoom” otwiera rysunek w nowym, osobnym oknie.
Za pomocą “Export” można zapisać aktualny rysunek do pliku.
“Czerwony krzyżyk” kasuje aktualny rysunek.
“Miotła” usuwa wszystkie rysunki
1.4 Zapisywanie grafiki
Zapisanie grafiki, zależy głównie od posiadanego systemu operacyjnego. Można wybrać różne formaty zapisu grafiki, m.in:
| jpeg | jpeg() | |
| png | png() | |
| win.metafile | win.metafile() | najlepszy wybór do użycia w Word |
| pdf() | najlepszy wybór do użycia w pdflatex | |
| postscript | postscript() | najlepszy wybór do użycia w latex i Open Office |
Dla powyższych funkcji możemy użyć między innymi takich argumentów
jak: width oraz height, aby dostosować
wysokość oraz szerokość grafiki (podawane wartości w pikselach). Dla
formatu jpeg możemy również dodać argument quality, aby
zmniejszyć lub zwiększyć poziom kompresji (podana wartość powinna być
procentowa z zakresy \((0,100)\)).
Ogólna metoda, która działa niezależnie od systemu operacyjnego, polega na wykonaniu poniższego kodu:
jpeg('rplot.jpg', width = 500, height=500, quality = 70)# zapisuje grafikę w formacie jpg pod nazwą rplot
plot(x,y)
dev.off()Możemy również podać wysokość i szerokość grafiki w cm
lub mm za pomocą używając argumentu units. W
tym przypadku warto również ustawić rozdzielczość używając
res.
Grafika zostanie zapisana w chwilowo aktywnym katalogu, który można
sprawdzić za pomocą komendy getwd(). W celu zapisania
grafiki w innym wybrany katalogi można wywołać funkcję
jpeq() podając ścieżkę dostępu
jpeg('/Moja_ścieżka_dostępu/rplot.jpg') lub zmieniać
aktualny katalog za pomocą komendy setwd().
Inny sposób zmiany aktualnego katalogu to wybranie Files
i odpowiedniego katalogu w prawym dolnym oknie RStudio, a następnie
kliknięcie niebieskiego trybiku i wybranie Set As Working
Directory.
Warto również dodać, że możemy do tych funkcji przekazywać dodatkowe argumentu (więcej informacji w helpie) takie jak, np. width, height,… co może być przydatne, gdy chcemy mieć zapisanych wiele obrazków o takich samych wymiarach.
Gdy operujesz systemem Windows lub Mac, graficzny interfejs ułatwia zapisywanie plików.
Na systemie Windows, wystarczy kliknąć prawym przyciskiem myszki w okno wykresu i wybrać opcję np. “Zapisz jako…”.
Na systemie Mac, klikając w okno wykresy kliknij “Plik->Zapisz” (zostanie on wtedy zapisany w formacie pdf) lub “Plik->Zapisz jako”, aby zapisać w innym formacie.
1.5 Zadania - grafika
1.5.1 Zadanie 1
a. Narysować wykres funkcji \(\sin\) na przedziale \([0,10]\)
b. Narysować ponownie wykres funkcji \(\sin\), dodając tym razem zakres osi OY
\([-1.5,1.5]\) (opcja
ylim). Nadać wykresowi tytuł np “Wykres funkcji sinus”, osi
OX nazwę “Kąt”, a osi OY nazwę “sinus”.
c. Dodać linię o równaniu \(y=\frac{x}{2
\pi}\) do poprzedniego wykresu za pomocą funkcji
lines. Użyć np. koloru czerwonego.
d. Dodać do poprzedniego wykresu punkty o współrzędnych \((0,1.3)\) , \((1,1)\) oraz \((2,1)\) korzystając z funkcji
points - punkty narysować niebieskim symbolem ‘*’.
1.5.2 Zadanie 2
Podzielić okno graficzne na 2*2 części i narysować:
wykres funkcji \(\cos\) w lewym górnym rogu
wykres funkcji \(\sin\) w prawym górnym rogu
wykres funkcji \(\exp\) w lewym dolnym rogu
wykres funkcji \(\log\) w prawym dolnym rogu
Nadać odpowiednie tytuły poszczególnym wykresom i zapisać wykres do pliku.
1.5.3 Zadanie 3
Narysować ponownie wykres funkcji kwadratowej:
x=seq(1,10,by=.01) # więcej punktów, "wygładzenie" paraboli
y=x*x
plot(x,y,type='l',col='red') # kolor wykresu, tutaj 'red'Polecenie ? plot.default (wpisane w konsoli) wyświetla
pomoc na temat dostępnych argumentów polecenia plot.
Korzystając z pomocy sprawdzić działanie wybranych argumentów, w tym
type , log, main,
sub, axes, frame.plot ,
pch, cex…
Wykonać osobne wykresy, za każdym razem w tytule wykresu umieszczając testowany argument i jego wartość, np “axes=FALSE”.
2 Importowanie i eksportowanie danych
2.1 Dane z bibliotek
Część zbiorów danych R jest umieszczanych w odpowiednich
bibliotekach. Informacje na temat innych “wbudowanych” zbiorów danych
możemy uzyskać poprzez pomoc ? datasets. W ogólnym
przypadku pakiet ładujemy poleceniem
library("nazwa_pakietu"), a dane
data("nazwa_danych").
2.2 Dane w formacie
tekstowym, csv (comma separated values).
Plik csv jest popularnym formatem przechowywania danych. Niestety,
format ten nie ma ustandaryzowanej struktury. Kolejne kolumny oddzielane
są od siebie znakiem separującym, którym może być przecinek, średnik,
tabulacja. “Kropka dziesiętna” przy zapisie liczb może być oznaczana
przez znak . lub , (kropka lub przecinek).
2.2.1 Import danych za
pomocą kreatora RStudio
Dla celów ćwiczeniowych należy ściągnąć ze strony przedmiotu plik
Student_performance_data.csv i zapisać ten plik na dysku
(najlepiej w swoim ulubionym folderze).
Kreator importu znajduje się w prawym górnym oknie zmiennych
środowiskowych:
Import danych
Następnie z menu importu wybieramy pierwszą pozycję:
dane tekstowe
i odszukujemy zapisany wcześniej plik
Student_performance_data.csv na dysku. Pojawi się kolejne
okienko, gdzie na razie nie importujemy danych przed ustawieniem
odpowiednich parametrów (patrz informacja pod obrazkiem
!!!)
Okno importu danych
Istotne pola:
Nazwa zmiennej (ramki danych), pod którą będą dostępne dane po
imporcie. Można pozostawić bez zmian.
Heading. Pierwsza linia zbioru danych może
zawierać (i tutaj tak jest) nazwy zmiennych (kolumn) jak w ramkach
danych. Tutaj tak jest, należy zmienić na YES.
Pierwsza kolumna może zawierać nazwy/indeksy obserwacji.
Można pozostawić bez zmian.
Separator kolumn - należy zmienić na
comma jeżeli jest to co innego (tutaj ustawiony
jest średnik). Dolna część okna powinna się zmienić. To, jaki separator
kolumn należy wybrać, zależy od pliku.
Znak “kropki dziesiętnej” należy ustawić na
period, o ile jest coś innego.
Pozwala na potraktowanie łańcuchów tekstu jako zmiennych
jakościowych. Nie zmieniamy.
2.2.2 Podgląd danych
Wygodny podgląd danych w RStudio mamy poprzez kliknięcie lupy/tabelki
w oknie Enviroment:

2.2.3 Opis
zaimportowanych danych
Zbiór danych zawiera informacje na temat uczniów szkół średnich
szczegółowo opisując ich dane demograficzne, nawyki związane z nauką,
zaangażowanie rodziców, zajęcia pozalekcyjne i wyniki w nauce. Zmienna
docelowa, GradeClass, klasyfikuje oceny uczniów na różne kategorie.
W zbiorze danych mamy:
StudentID: Numer identyfikujący studenta,
Age: Wiek studenta,
Gender: Płeć studenta, 0 oznacza mężczyznę, a 1 kobietę,
Ethnicity: grupę etyczną do której należy student:
0: Kaukaz,
1: Afroamerykanin,
2: Azjata,
3: Inne.
ParentalEducation: Poziom wykształcenia rodziców, według
poniższych oznaczeń:
0: brak,
1: szkoła wyższa,
2: jakiś koledż,
3: licencjat,
4: wyżej niż licencjat,
StudyTimeWeekly: tygodniowy czas poświęcony nauce,
Absences: Liczba nieobecności w roku szkolnym,
Tutoring: cykl indywidualnych spotkań, 0 oznacza nie, a 1 oznacza
tak,
ParentalSupport: poziom wsparcia rodziców według poniższych
oznaczeń:
0: brak,
1: niski,
2: umiarkowany,
3: wysoki,
4: bardzo wysoki.
Extracurricular: Uczestnictwo w dodatkowych aktywnościach, 0
oznacza nie, 1 oznacza tak,
Sports: aktywność sportowa, 0 oznacza nie, 1 oznacza
tak,
Music: aktywność w działalnościach muzycznych, 0 oznacza nie, 1
oznacza tak,
Volunteering: wolontariat, 0 oznacza nie, 1 oznacza tak,
GPA: Średnia ocen,
GradeClass: klasyfikacja studenta na poziomie średniej ocen,
tj:
- 0: GPA\(\ge\) 3.5,
- 1: 3.0 \(\le\) GPA \(<\) 3.5,
- 2: 2.5 \(\le\) GPA \(<\) 3.0,
- 3: 2.0 \(\le\) GPA \(<\) 2.5,
- 4: 2.0 \(\le\) GPA \(<\) 2.5
2.2.4 Zadania - import
danych
2.2.4.1 Zadanie - praca z
zaimportowanymi danymi Student_performance_data.
Sprawdź jak dużo jest obserwacji w zbiorze danych.
Wyświetl informacje na temat 10 studentów którzy otrzymali
najwyższą średnią.
Napisz funkcję sprawdzająca, czy uczeń otrzymał odpowiednią
GradeClass na podstawie uzyskanej średniej ocen. Funkcja powinna zwraca
listę zawierająca numery indeksów uczniów dla których nastąpiła pomyłka
oraz liczbę, ile pomyłek jest w zbiorze danych.
Ile procent studentów realizowało co najmniej 3 spośród 4
dodatkowych aktywności (Extracurricular, Sports, Music, Volunteering).
Jaką średnią oni mieli.
Oblicz współczynnik korelacji Pearsona (polecenie
col) i narysuj wykres zależności (polecenie
plot) dla:
średniej ocen GPA oraz czasu nauki
StudyTimeWeekly,
średniej ocen GPA oraz nieobecności
Absences.
2.2.5 Import danych za
pomocą polecenia read.table()
Podstawowa składnia polecenia read.table() umożliwiająca
import danych jak w kreatorze wyżej ma postać:
dane_studenci=read.table(file="C:\\Users\\moje\\Desktop\\Student_performance_data.csv", sep=",", dec=".",header=TRUE)
gdzie
“dane_studenci” to nazwa tworzonej ramki danych,
file - określa położenie pliku na dysku.
UWAGA: konieczne są podwójne slashe, tj
\\ w określaniu lokalizacji pliku! Można też użyć
/ (pojedynczy)
sep, dec - określają odpowiednio separator kolumn i kropkę
dziesiętną,
header - czy pierwszy wiersz zawiera nazwy zmiennych.
Więcej opcji - w pomocy.
Inny sposób wczytania danych, jeżeli dane znajdują się w bieżącym
katalogu:
2.2.6 Zadanie -
wczytywanie danych
2.2.6.1 Zadanie
Wczytaj swoje dane z dysku pod swoją nazwą (parametrów nie zmieniać,
może to tylko zaszkodzić). Lokalizację pliku w Windows można znaleźć
klikając prawym klawiszem myszy, “właściwości”, ogólne. Pamiętamy o
podwójnych slashach. Sprawdzić w podglądzie danych RStudio zawartość
zaimportowanej ramki danych.
Uwaga: Polecenie read.table() ma duża
liczbę argumentów (a zatem i możliwości), przez co może działać wolno w
przypadku dużej ilości danych. Można wtedy skorzystać z plecenia
fread() z pakietu data.table.
Uwaga: w pakiecie utils znajdują się
polecenia read.csv(), read.csv2() ,
read.delim(), read.delim() mające takie same
działanie jak read.table(), ale pewne argumenty mają
domyślnie zdefiniowane.
Uwaga: zamiast lokalizacji pliku na dysku można
podać jego adres internetowy
2.2.7 Zapisywanie danych
do pliku tekstowego
Składnia polecenia write.table() jest podobna do składni
polecenia read.table. W szczególności określamy dane, plik,
separator, znak kropki dziesiętnej, informacje o nagłówkach kolumn i
wierszy, znak końca linii (eol). Przykładowo, zapiszemy do pliku
poniższą ramkę danych:
#tworzymy przykładową ramkę danych
Francja=as.data.frame(matrix(c(12220,15310,112958,8960,12125,6596,6999,40244,6170,8233,7223,10921,46146,4661,6653,357,395,1247,279,553,2239,3111,7629,4013,3178),ncol=5))
names(Francja)=c('n.human','n.scisle','medyczne','sportowe','techniczne')
row.names(Francja)=c('Bordeaux','Lyon','Paryz','Rennes','Tuluza')
write.table(Francja, file="C:\\Users\\moje\\Desktop\\frans.csv", sep=";", dec=".",col.names=TRUE, row.names=TRUE, eol="\n")
2.2.8 Zadania z
zapisywaniem do pliku
2.2.8.1 Zadanie 1
Otworzyć zapisany plik w notatniku i sprawdzić zawartość (czy
rzeczywiście zapisała nam się ramka danych).
2.2.8.2 Zadanie 2
Zapisać ramkę danych gotowego zbioru danych iris do
pliku. Otworzyć zapisany plik.
Uwagi
Polecenie
## "x"
## "1" 0.356241206172854
## "2" 0.47072004689835
## "3" 0.450486788060516
## "4" 0.145444292575121
## "5" 0.96163277537562
## "6" 0.262194738024846
## "7" 0.12822967977263
## "8" 0.350637595402077
## "9" 0.51264618569985
## "10" 0.0361613479908556
“zapisuje” wektor na ekranie.
Polecenie
“zapisuje” wektor do schowka systemowego. Można je “wkleić” za pomocą
ctrl+v.
2.1 Dane z bibliotek
Część zbiorów danych R jest umieszczanych w odpowiednich
bibliotekach. Informacje na temat innych “wbudowanych” zbiorów danych
możemy uzyskać poprzez pomoc ? datasets. W ogólnym
przypadku pakiet ładujemy poleceniem
library("nazwa_pakietu"), a dane
data("nazwa_danych").
2.2 Dane w formacie tekstowym, csv (comma separated values).
Plik csv jest popularnym formatem przechowywania danych. Niestety,
format ten nie ma ustandaryzowanej struktury. Kolejne kolumny oddzielane
są od siebie znakiem separującym, którym może być przecinek, średnik,
tabulacja. “Kropka dziesiętna” przy zapisie liczb może być oznaczana
przez znak . lub , (kropka lub przecinek).
2.2.1 Import danych za
pomocą kreatora RStudio
Dla celów ćwiczeniowych należy ściągnąć ze strony przedmiotu plik
Student_performance_data.csv i zapisać ten plik na dysku
(najlepiej w swoim ulubionym folderze).
Kreator importu znajduje się w prawym górnym oknie zmiennych
środowiskowych:
Import danych
Następnie z menu importu wybieramy pierwszą pozycję:
dane tekstowe
i odszukujemy zapisany wcześniej plik
Student_performance_data.csv na dysku. Pojawi się kolejne
okienko, gdzie na razie nie importujemy danych przed ustawieniem
odpowiednich parametrów (patrz informacja pod obrazkiem
!!!)
Okno importu danych
Istotne pola:
Nazwa zmiennej (ramki danych), pod którą będą dostępne dane po
imporcie. Można pozostawić bez zmian.
Heading. Pierwsza linia zbioru danych może
zawierać (i tutaj tak jest) nazwy zmiennych (kolumn) jak w ramkach
danych. Tutaj tak jest, należy zmienić na YES.
Pierwsza kolumna może zawierać nazwy/indeksy obserwacji.
Można pozostawić bez zmian.
Separator kolumn - należy zmienić na
comma jeżeli jest to co innego (tutaj ustawiony
jest średnik). Dolna część okna powinna się zmienić. To, jaki separator
kolumn należy wybrać, zależy od pliku.
Znak “kropki dziesiętnej” należy ustawić na
period, o ile jest coś innego.
Pozwala na potraktowanie łańcuchów tekstu jako zmiennych
jakościowych. Nie zmieniamy.
2.2.2 Podgląd danych
Wygodny podgląd danych w RStudio mamy poprzez kliknięcie lupy/tabelki
w oknie Enviroment:

2.2.3 Opis
zaimportowanych danych
Zbiór danych zawiera informacje na temat uczniów szkół średnich
szczegółowo opisując ich dane demograficzne, nawyki związane z nauką,
zaangażowanie rodziców, zajęcia pozalekcyjne i wyniki w nauce. Zmienna
docelowa, GradeClass, klasyfikuje oceny uczniów na różne kategorie.
W zbiorze danych mamy:
StudentID: Numer identyfikujący studenta,
Age: Wiek studenta,
Gender: Płeć studenta, 0 oznacza mężczyznę, a 1 kobietę,
Ethnicity: grupę etyczną do której należy student:
0: Kaukaz,
1: Afroamerykanin,
2: Azjata,
3: Inne.
ParentalEducation: Poziom wykształcenia rodziców, według
poniższych oznaczeń:
0: brak,
1: szkoła wyższa,
2: jakiś koledż,
3: licencjat,
4: wyżej niż licencjat,
StudyTimeWeekly: tygodniowy czas poświęcony nauce,
Absences: Liczba nieobecności w roku szkolnym,
Tutoring: cykl indywidualnych spotkań, 0 oznacza nie, a 1 oznacza
tak,
ParentalSupport: poziom wsparcia rodziców według poniższych
oznaczeń:
0: brak,
1: niski,
2: umiarkowany,
3: wysoki,
4: bardzo wysoki.
Extracurricular: Uczestnictwo w dodatkowych aktywnościach, 0
oznacza nie, 1 oznacza tak,
Sports: aktywność sportowa, 0 oznacza nie, 1 oznacza
tak,
Music: aktywność w działalnościach muzycznych, 0 oznacza nie, 1
oznacza tak,
Volunteering: wolontariat, 0 oznacza nie, 1 oznacza tak,
GPA: Średnia ocen,
GradeClass: klasyfikacja studenta na poziomie średniej ocen,
tj:
- 0: GPA\(\ge\) 3.5,
- 1: 3.0 \(\le\) GPA \(<\) 3.5,
- 2: 2.5 \(\le\) GPA \(<\) 3.0,
- 3: 2.0 \(\le\) GPA \(<\) 2.5,
- 4: 2.0 \(\le\) GPA \(<\) 2.5
2.2.4 Zadania - import
danych
2.2.4.1 Zadanie - praca z
zaimportowanymi danymi Student_performance_data.
Sprawdź jak dużo jest obserwacji w zbiorze danych.
Wyświetl informacje na temat 10 studentów którzy otrzymali
najwyższą średnią.
Napisz funkcję sprawdzająca, czy uczeń otrzymał odpowiednią
GradeClass na podstawie uzyskanej średniej ocen. Funkcja powinna zwraca
listę zawierająca numery indeksów uczniów dla których nastąpiła pomyłka
oraz liczbę, ile pomyłek jest w zbiorze danych.
Ile procent studentów realizowało co najmniej 3 spośród 4
dodatkowych aktywności (Extracurricular, Sports, Music, Volunteering).
Jaką średnią oni mieli.
Oblicz współczynnik korelacji Pearsona (polecenie
col) i narysuj wykres zależności (polecenie
plot) dla:
średniej ocen GPA oraz czasu nauki
StudyTimeWeekly,
średniej ocen GPA oraz nieobecności
Absences.
2.2.5 Import danych za
pomocą polecenia read.table()
Podstawowa składnia polecenia read.table() umożliwiająca
import danych jak w kreatorze wyżej ma postać:
dane_studenci=read.table(file="C:\\Users\\moje\\Desktop\\Student_performance_data.csv", sep=",", dec=".",header=TRUE)
gdzie
“dane_studenci” to nazwa tworzonej ramki danych,
file - określa położenie pliku na dysku.
UWAGA: konieczne są podwójne slashe, tj
\\ w określaniu lokalizacji pliku! Można też użyć
/ (pojedynczy)
sep, dec - określają odpowiednio separator kolumn i kropkę
dziesiętną,
header - czy pierwszy wiersz zawiera nazwy zmiennych.
Więcej opcji - w pomocy.
Inny sposób wczytania danych, jeżeli dane znajdują się w bieżącym
katalogu:
2.2.6 Zadanie -
wczytywanie danych
2.2.6.1 Zadanie
Wczytaj swoje dane z dysku pod swoją nazwą (parametrów nie zmieniać,
może to tylko zaszkodzić). Lokalizację pliku w Windows można znaleźć
klikając prawym klawiszem myszy, “właściwości”, ogólne. Pamiętamy o
podwójnych slashach. Sprawdzić w podglądzie danych RStudio zawartość
zaimportowanej ramki danych.
Uwaga: Polecenie read.table() ma duża
liczbę argumentów (a zatem i możliwości), przez co może działać wolno w
przypadku dużej ilości danych. Można wtedy skorzystać z plecenia
fread() z pakietu data.table.
Uwaga: w pakiecie utils znajdują się
polecenia read.csv(), read.csv2() ,
read.delim(), read.delim() mające takie same
działanie jak read.table(), ale pewne argumenty mają
domyślnie zdefiniowane.
Uwaga: zamiast lokalizacji pliku na dysku można
podać jego adres internetowy
2.2.7 Zapisywanie danych
do pliku tekstowego
Składnia polecenia write.table() jest podobna do składni
polecenia read.table. W szczególności określamy dane, plik,
separator, znak kropki dziesiętnej, informacje o nagłówkach kolumn i
wierszy, znak końca linii (eol). Przykładowo, zapiszemy do pliku
poniższą ramkę danych:
#tworzymy przykładową ramkę danych
Francja=as.data.frame(matrix(c(12220,15310,112958,8960,12125,6596,6999,40244,6170,8233,7223,10921,46146,4661,6653,357,395,1247,279,553,2239,3111,7629,4013,3178),ncol=5))
names(Francja)=c('n.human','n.scisle','medyczne','sportowe','techniczne')
row.names(Francja)=c('Bordeaux','Lyon','Paryz','Rennes','Tuluza')
write.table(Francja, file="C:\\Users\\moje\\Desktop\\frans.csv", sep=";", dec=".",col.names=TRUE, row.names=TRUE, eol="\n")
2.2.8 Zadania z
zapisywaniem do pliku
2.2.8.1 Zadanie 1
Otworzyć zapisany plik w notatniku i sprawdzić zawartość (czy
rzeczywiście zapisała nam się ramka danych).
2.2.8.2 Zadanie 2
Zapisać ramkę danych gotowego zbioru danych iris do
pliku. Otworzyć zapisany plik.
Uwagi
Polecenie
## "x"
## "1" 0.356241206172854
## "2" 0.47072004689835
## "3" 0.450486788060516
## "4" 0.145444292575121
## "5" 0.96163277537562
## "6" 0.262194738024846
## "7" 0.12822967977263
## "8" 0.350637595402077
## "9" 0.51264618569985
## "10" 0.0361613479908556
“zapisuje” wektor na ekranie.
Polecenie
“zapisuje” wektor do schowka systemowego. Można je “wkleić” za pomocą
ctrl+v.
2.2.1 Import danych za pomocą kreatora RStudio
Dla celów ćwiczeniowych należy ściągnąć ze strony przedmiotu plik
Student_performance_data.csv i zapisać ten plik na dysku
(najlepiej w swoim ulubionym folderze).
Kreator importu znajduje się w prawym górnym oknie zmiennych środowiskowych:
Następnie z menu importu wybieramy pierwszą pozycję:
i odszukujemy zapisany wcześniej plik
Student_performance_data.csv na dysku. Pojawi się kolejne
okienko, gdzie na razie nie importujemy danych przed ustawieniem
odpowiednich parametrów (patrz informacja pod obrazkiem
!!!)
Istotne pola:
Nazwa zmiennej (ramki danych), pod którą będą dostępne dane po imporcie. Można pozostawić bez zmian.
Heading. Pierwsza linia zbioru danych może zawierać (i tutaj tak jest) nazwy zmiennych (kolumn) jak w ramkach danych. Tutaj tak jest, należy zmienić na YES.
Pierwsza kolumna może zawierać nazwy/indeksy obserwacji. Można pozostawić bez zmian.
Separator kolumn - należy zmienić na
commajeżeli jest to co innego (tutaj ustawiony jest średnik). Dolna część okna powinna się zmienić. To, jaki separator kolumn należy wybrać, zależy od pliku.Znak “kropki dziesiętnej” należy ustawić na
period, o ile jest coś innego.Pozwala na potraktowanie łańcuchów tekstu jako zmiennych jakościowych. Nie zmieniamy.
2.2.2 Podgląd danych
Wygodny podgląd danych w RStudio mamy poprzez kliknięcie lupy/tabelki w oknie Enviroment:
2.2.3 Opis zaimportowanych danych
Zbiór danych zawiera informacje na temat uczniów szkół średnich szczegółowo opisując ich dane demograficzne, nawyki związane z nauką, zaangażowanie rodziców, zajęcia pozalekcyjne i wyniki w nauce. Zmienna docelowa, GradeClass, klasyfikuje oceny uczniów na różne kategorie.
W zbiorze danych mamy:
StudentID: Numer identyfikujący studenta,
Age: Wiek studenta,
Gender: Płeć studenta, 0 oznacza mężczyznę, a 1 kobietę,
Ethnicity: grupę etyczną do której należy student:
0: Kaukaz,
1: Afroamerykanin,
2: Azjata,
3: Inne.
ParentalEducation: Poziom wykształcenia rodziców, według poniższych oznaczeń:
0: brak,
1: szkoła wyższa,
2: jakiś koledż,
3: licencjat,
4: wyżej niż licencjat,
StudyTimeWeekly: tygodniowy czas poświęcony nauce,
Absences: Liczba nieobecności w roku szkolnym,
Tutoring: cykl indywidualnych spotkań, 0 oznacza nie, a 1 oznacza tak,
ParentalSupport: poziom wsparcia rodziców według poniższych oznaczeń:
0: brak,
1: niski,
2: umiarkowany,
3: wysoki,
4: bardzo wysoki.
Extracurricular: Uczestnictwo w dodatkowych aktywnościach, 0 oznacza nie, 1 oznacza tak,
Sports: aktywność sportowa, 0 oznacza nie, 1 oznacza tak,
Music: aktywność w działalnościach muzycznych, 0 oznacza nie, 1 oznacza tak,
Volunteering: wolontariat, 0 oznacza nie, 1 oznacza tak,
GPA: Średnia ocen,
GradeClass: klasyfikacja studenta na poziomie średniej ocen, tj:
- 0: GPA\(\ge\) 3.5,
- 1: 3.0 \(\le\) GPA \(<\) 3.5,
- 2: 2.5 \(\le\) GPA \(<\) 3.0,
- 3: 2.0 \(\le\) GPA \(<\) 2.5,
- 4: 2.0 \(\le\) GPA \(<\) 2.5
2.2.4 Zadania - import danych
2.2.4.1 Zadanie - praca z
zaimportowanymi danymi Student_performance_data.
Sprawdź jak dużo jest obserwacji w zbiorze danych.
Wyświetl informacje na temat 10 studentów którzy otrzymali najwyższą średnią.
Napisz funkcję sprawdzająca, czy uczeń otrzymał odpowiednią GradeClass na podstawie uzyskanej średniej ocen. Funkcja powinna zwraca listę zawierająca numery indeksów uczniów dla których nastąpiła pomyłka oraz liczbę, ile pomyłek jest w zbiorze danych.
Ile procent studentów realizowało co najmniej 3 spośród 4 dodatkowych aktywności (Extracurricular, Sports, Music, Volunteering). Jaką średnią oni mieli.
Oblicz współczynnik korelacji Pearsona (polecenie
col) i narysuj wykres zależności (polecenieplot) dla:
średniej ocen
GPAoraz czasu naukiStudyTimeWeekly,średniej ocen
GPAoraz nieobecnościAbsences.
2.2.5 Import danych za pomocą polecenia read.table()
Podstawowa składnia polecenia read.table() umożliwiająca
import danych jak w kreatorze wyżej ma postać:
dane_studenci=read.table(file="C:\\Users\\moje\\Desktop\\Student_performance_data.csv", sep=",", dec=".",header=TRUE)gdzie
“dane_studenci” to nazwa tworzonej ramki danych,
file - określa położenie pliku na dysku.
UWAGA: konieczne są podwójne slashe, tj
\\ w określaniu lokalizacji pliku! Można też użyć
/ (pojedynczy)
sep, dec - określają odpowiednio separator kolumn i kropkę
dziesiętną,
header - czy pierwszy wiersz zawiera nazwy zmiennych.
Więcej opcji - w pomocy.
Inny sposób wczytania danych, jeżeli dane znajdują się w bieżącym katalogu:
2.2.6 Zadanie - wczytywanie danych
2.2.6.1 Zadanie
Wczytaj swoje dane z dysku pod swoją nazwą (parametrów nie zmieniać, może to tylko zaszkodzić). Lokalizację pliku w Windows można znaleźć klikając prawym klawiszem myszy, “właściwości”, ogólne. Pamiętamy o podwójnych slashach. Sprawdzić w podglądzie danych RStudio zawartość zaimportowanej ramki danych.
Uwaga: Polecenie read.table() ma duża
liczbę argumentów (a zatem i możliwości), przez co może działać wolno w
przypadku dużej ilości danych. Można wtedy skorzystać z plecenia
fread() z pakietu data.table.
Uwaga: w pakiecie utils znajdują się
polecenia read.csv(), read.csv2() ,
read.delim(), read.delim() mające takie same
działanie jak read.table(), ale pewne argumenty mają
domyślnie zdefiniowane.
Uwaga: zamiast lokalizacji pliku na dysku można podać jego adres internetowy
2.2.7 Zapisywanie danych do pliku tekstowego
Składnia polecenia write.table() jest podobna do składni
polecenia read.table. W szczególności określamy dane, plik,
separator, znak kropki dziesiętnej, informacje o nagłówkach kolumn i
wierszy, znak końca linii (eol). Przykładowo, zapiszemy do pliku
poniższą ramkę danych:
#tworzymy przykładową ramkę danych
Francja=as.data.frame(matrix(c(12220,15310,112958,8960,12125,6596,6999,40244,6170,8233,7223,10921,46146,4661,6653,357,395,1247,279,553,2239,3111,7629,4013,3178),ncol=5))
names(Francja)=c('n.human','n.scisle','medyczne','sportowe','techniczne')
row.names(Francja)=c('Bordeaux','Lyon','Paryz','Rennes','Tuluza')
write.table(Francja, file="C:\\Users\\moje\\Desktop\\frans.csv", sep=";", dec=".",col.names=TRUE, row.names=TRUE, eol="\n")2.2.8 Zadania z zapisywaniem do pliku
2.2.8.1 Zadanie 1
Otworzyć zapisany plik w notatniku i sprawdzić zawartość (czy rzeczywiście zapisała nam się ramka danych).
2.2.8.2 Zadanie 2
Zapisać ramkę danych gotowego zbioru danych iris do
pliku. Otworzyć zapisany plik.
Uwagi
Polecenie
## "x"
## "1" 0.356241206172854
## "2" 0.47072004689835
## "3" 0.450486788060516
## "4" 0.145444292575121
## "5" 0.96163277537562
## "6" 0.262194738024846
## "7" 0.12822967977263
## "8" 0.350637595402077
## "9" 0.51264618569985
## "10" 0.0361613479908556
“zapisuje” wektor na ekranie.
Polecenie
“zapisuje” wektor do schowka systemowego. Można je “wkleić” za pomocą
ctrl+v.
3 Importowanie danych w formacie Excela
Dla celów ćwiczeniowych należy ze strony przedmiotu ściągnąć plik
Students_performance.xlsx i zapisać ten plik na dysku
(najlepiej w swoim ulubionym folderze).
3.1 Import danych za pomocą kreatora
Ponownie uruchamiamy kreator importu:
Tym razem wybieramy Excela.
RStudio może chcieć na tym etapie zainstalować dodatkowe pakiety (jednorazowo).
Wskazujemy odpowiedni plik na dysku (można też adres internetowy).
W kreatorze importu warto zwrócić uwagę na:
można ramce danych nadać własną nazwę,
pierwszy wiersz odpowiada za nazwy zmiennych, warto zaznaczyć,
wybór arkusza w pliku Excela, tutaj jest i tak tylko jeden
3.2 Import danych Excel -
polecenie z pakietu openxlsx
W standardowy sposób, o ile nie jest dostępny, instalujemy pakiet
openxlsx.
Ładujemy pakiet poleceniem library("openxlsx").
Polecenie importu danych z pliku
Students_performance.xlsx ma postać:
dane_studentow=read.xlsx("C:\\Usersxxxxxx\\Students_performance.xlsx", sheet=1),
gdzie należy podać położenie pliku na dysku.
4 Importowanie danych w formacie Matlaba
Jeden ze sposobów na importowanie danych w formacie Matlab (pliki z
rozszerzeniem .mat) jest wykorzystanie funkcji readMat z
pakietu R.matlab.
Może być wymagane za pierwszym razem zainstalowanie pakietu
R.matlab (górny pasek, Tools, InstallPackages).
Tym razem zaimportujemy dane bezpośrednio ze strony www
library("R.matlab")
#options(max.print=5000) # czytaj UWAGA poniżej
matlab1=readMat("https://home.agh.edu.pl/~karolinm/labs_wpdad/matlab_dane.mat")Dane wczytywane są w postaci listy kolejnych obiektów importowanego pliku.
Oczywiście, można plik ściągnąć na dysk i zaimportować dane podając ścieżkę dostępu do pliku na dysku.
4.1 Zadanie 1
Co znajduje się w zaimportowanym pliku (str,
summary)? Wskazówka: wartości numeryczne w pliku są losowe,
nie mają żadnej interpretacji.
UWAGA: ze względu na pewne ograniczenia, może
pojawić się w danych komunikat postaci “reached
getOption(”max.print”) – omitted” w przypadku próby wyświetlenia
całej zaimportowanej listy. W takiej sytuacji można zmienić wartość
max.print jak w powyższym kodzie. Nie ma potrzeby ponownego
importu, R zaakceptował dane, ale nie uważa za stosowne wyświetlania
wszystkiego co użyszkodnik zechce.
4.2 Dostęp do zaimportowanych danych, typy danych…
## [1] TRUE
## $A
## [,1] [,2] [,3] [,4]
## [1,] 0.8354046 0.9431698 0.78962047 0.6534568
## [2,] 0.8357133 0.3214731 0.79918504 0.4896553
## [3,] 0.0498575 0.8064668 0.04956477 0.9728522
## [4,] 0.5458862 0.6013988 0.28319863 0.7484899
## [1] FALSE
## [,1] [,2] [,3] [,4]
## [1,] 0.8354046 0.9431698 0.78962047 0.6534568
## [2,] 0.8357133 0.3214731 0.79918504 0.4896553
## [3,] 0.0498575 0.8064668 0.04956477 0.9728522
## [4,] 0.5458862 0.6013988 0.28319863 0.7484899
## [1] TRUE
## [1] 0.9431698