2 Wprowadzenie do pracy w R

2.1 Katalog roboczy

Zawsze rozpocznij pracę od ustawienia ścieżki do folder roboczego.

#ustawienie ścieżki do katalogu roboczego
setwd("/home/anna/DYDAKTYKA/STATYSTYKA/MATERIALY_CWICZENIA/cwiczenie_1")
#sprawdzanie ścieżki do katalogu 
getwd()

2.2 Otwieranie i zapisywanie plików tekstowych

#Otwieranie danych z pliku csv
dane <- read.csv('dane/dane.csv')

#otwieranie danych z pliku txt - wymaga określenia separatora
dane2 <- read.table('dane/dane.txt', sep = " ")

Dane w pliku dostępnym tylko w R

austrialia <- readRDS("dane/dane.rds")

Otwieranie środowiska pracy (przydatne, gdy chcemy wczytać kilka obiektów do R)

load("dane/cw1.rda")

2.3 Dane zawarte w pakietach

data("gapminder", package = "gapminder")

2.4 Wstępna eksploracja danych

str(gapminder)

#wyświetlanie początkowych wierszy, argument n definiuje ile wierszy ma być wyświetlonych (domyślnie 5)
head(gapminder)
head(gapminder, n = 2)

#wyświetlanie n ostatnich wierszy, argument n definiuje ile wierszy ma być wyświetlonych (domyślnie 5)
tail(gapminder)

#wyświetlanie nazw zmiennych, nazw kolumn oraz nazw wierszy
names(gapminder)
colnames(gapminder)
rownames(gapminder)

#liczba kolumn
ncol(gapminder)

#liczba wierszy
nrow(gapminder)

#wyświetlanie unikalnych wartości 
unique(gapminder$continent)

#typ/klasa zmiennej
class(gapminder$continent)

#Liczność poszczególnych kategorii 
table(gapminder$continent) 

#Podstawowe statystyki zbioru danych
summary(gapminder)

#Podstawowe statystyki zmiennej lifeExp (oczekiwana długość życia)
summary(gapminder$lifeExp)

Uwaga! W ten sposób zaznaczane będą w tekście zadania do wykonania odnoszące się do omówionego powyżej fragmentu materiału.

Wyświetl 4 ostatnie wiersze zbioru danych dane.

Używając zbioru danych dane, wyświetl unikalne wartości dla kolumny country

Wyświetl podstawowe statystyki zbioru danych dane.

2.5 Selekcja oraz tworzenie nowej zmiennej

2.5.1 Indeksowanie

gapminder[1,]
gapminder[,1]

2.5.2 Selekcja danych o określonej wartości

gapminder[gapminder$year == 1952, ]
gapminder[gapminder$year == 1952 & gapminder$continent == 'Asia',]
gapminder[gapminder$year == 1952, c(5)]
gapminder[gapminder$pop > 10000000, ]

2.5.3 Funkcja subset()

dane_sel <- subset(gapminder, continent == "Europe" & year == 1952, select = c(country, pop))
dane_selection <- subset(gapminder, continent == "Europe" & year == 1952, select = c(country:pop))

Ze zbioru danych dane wybierz dane dla państwa Australia.

W jakich latach w Australii długość trwania życia wynosiła powyżej 75 lat?

2.5.4 Tworzenie nowej zmiennej

dane1952 <- gapminder[gapminder$year == 1952, ]
gapminder$pop_mln <- gapminder$pop / 1000000
head(gapminder, 3)

2.5.5 Porządkowanie

dane_2 <- gapminder[order(gapminder$year), ]

#sortowanie względemm dwóch zmiennych
dane_2 <- gapminder[order(gapminder$continent, gapminder$country), ]
head(dane_2)

#sortowanie według kraju (rosnąco) oraz roku (malejąco)
dane_2 <- gapminder[order(gapminder$country, -gapminder$year),]
head(dane_2)

Ze zbioru danych dane wyselekcjonować dane dla Nowej Zelandii (New Zealand) oraz posortować je według długości trwania życia (od największej do najmniejszej)

W którym roku liczba ludności Nowej Zelandii przekroczyła 3 miliony?

2.6 Zapisywanie wyników pracy

2.6.1 Zapisywanie pojedyńczego obiektu (np. ramki danych)

Plik tekstowy może być otworzony w dowolnym oprogramowaniu

write.csv(australia, "out/australia.csv")

2.6.2 Zapisywanie wyników pracy w formacie dostępnym tylko w R

Pojedyńczy obiekt

saveRDS(dane, "out/dane.rds")

Zapisywanie wybranych obiektów ze środowiska pracy R

save(dane, australia, file = "out/cw1a.rda")

Zapisywanie wszystkich obiektów znajdujących się w środowisku pracy R

save.image("out/cw1b.RData")

2.7 Pomoc

?nazwaFunkcji
help(nazwaFunkcji)
example(nazwaFunkcji)
args(nazwaFunkcji)

3 Skrypty w R

  • kod umieszczamy w oknie edytora RStudio

  • wykonanie kodu (Ctrl + Enter) - wykonanie kodu oznacza przeniesienie kodu do konsoli.

  • poszczególne linie kodu muszą być skomentowane (opisany sposób działania kodu). Komentarz poprzedzamy znakiem #.

  • każdy operator matematyczny powinien mieć spację z obu stron

  • cudzysłowia nie potrzebują spacji

  • należy starać się, aby linie kodu nie przekraczały 80 znaków

  • przydatne skróty klawiaturowe:

    • Alt+- - strzałka
    • Ctrl+Enter - wykonanie linii kodu ze skryptu
    • Tab - autouzupełnianie

4 R Markdown oraz R Notebook

Podstawowe informacje: https://rmarkdown.rstudio.com/lesson-8.html

5 Zadania

Zadanie 1

  1. Otwórz nowy dokument R Notebook (File - New File - R Notebook). Nazwij dokument - Raport1 i zapisz dokument w swoim folderze roboczym. Uwaga! Folder roboczy automatycznie zostanie utworzony w miejscu, w którym zapisano dokument RNotebook.

  2. Dodaj tytuł, imię i nazwisko (uzupełnij zmienne title oraz author).

  3. Wstaw nowy blok kodu, który wczyta dane z pliku dane.csv.

  4. Dodaj opis objaśniający co robi dany fragment kodu.

  5. Wygenreuj raport (opcja Knit)

Zadanie 2.

Utwórz nowy dokument RNotebook i zapisz go jako cw1_zad2_nazwisko. Dokument ma zawierać rozwiązanie poniższego zadania.

Wczytaj dane gapminder znajdujące się w pakiecie gapminder().

  1. Użyj polecenia pomocy, aby wyświetlić podstawowe informacje jakie zawiera zbiór danych
  2. Wyświetl nazwy kolumn w zbiorze danych gapminder.
  3. Wyświetl trzy pierwsze wiersze ze zbioru danych gapminder.
  4. Ile wierszy oraz ile kolumn znajduje się w zbiorze danych gapminder?
  5. Jakiej klasy jest zmienna lifeExp (oczekiwana długość życia)?
  6. Jaka jest minimalna, średnia, maksymalna oczekiwana długość życia?
  7. Wyselekcjonuj dane dla Polski oraz przypisz je do zmiennej polska. Zapisz dane dla Polski do pliku polska.csv
  8. Jaka była liczba ludności (zmienna pop) w Polsce w 1952 roku?
  9. Który kraj miał najkrótszą, a który najdłuższa oczekiwaną długość życia? W którym roku?
  10. Podaj nazwę najludniejszego kraju w roku 1952?
  11. Ile państw (według danych gapminder) znajdowało się w Europie w 2007 roku?
  12. Ile było państw w 2007 roku z liczbą ludności przekraczającą 100 milionów mieszkańców? Na ilu kontynentach były położone te pańtwa?
  13. Wyświetl wykres dla Polski pokazujący relację między oczekiwaną długością trwania życia (lifeExp) a rokiem (year). (Podpowiedź znajduje się w przykładach).
  14. Policz średnią oczekiwaną długość życia (lifeExp) dla danego kontynentu. (Podpowiedź jak policzyć statystyki w grupach znajduje się w przykładach).