1.2 RStudio - drugi dio
Do sada smo naučili da se R može koristiti kao kalkulator, podaci se mogu simulirati pomoću generatora slučajnih brojeva ili unijeti ručno.
Podaci se također mogu importirati lokalno iz datoteka spremljenih na vašem računalu ili, ako je datoteka s podacima dostupna online, može se izravno učitati u RStudio koristeći URL adresu veze.
Zadatak 7. Izravno importirajte podatke u RStudio iz tekstualne datoteke eu_countries.txt
pomoću naredbe read.table()
koristeći URL adresu veze. Spremnik podataka imenujte novipodaci
. Provjerite strukturu objekta novipodaci
i prikažite podatke u prozoru konzole.
# Učitavanje podataka iz datoteke koja je dostupna online
=read.table(file="http://www.efzg.hr/userdocsimages/sta/jarneric/eu_countries.txt",header=TRUE)
novipodaci# Provjera strukture spremnika podataka
str(novipodaci)
# Imenovanje redaka izdvajanjem naziva zemalja iz stupca "country"
rownames(novipodaci)=novipodaci$country
# Izostavljanje prvog stupca indeksiranjem unutar uglatih zagrada
=novipodaci[,-1]
novipodacistr(novipodaci) # Ponovna provjera strukture spremnika podataka
print(novipodaci) # Prikaz podataka u prozoru konzole
\(~~~\)
Objekt
novipodaci
se odnosi na uzorak \(18\) europskih zemalja (\(n=18\)) s \(6\) varijabli, čije su vrijednosti opažene u \(2012.\) godini. Svaki stupac iz spremnika podataka može se izdvojiti kao pojedinačna varijabla indeksiranjem unutar uglatih zagrada [i, j]. Indeksi
predstavlja redove, a indeksj
predstavlja stupce. Alternativno, pojedinačna se varijabla može izdvojiti iz spremnika podataka pomoću simbola$
.Datoteka
eu_countries.txt
tekstualna je datoteka s podacima razdvojenim tabulatorima i s točkom kao decimalnim znakomAko je CSV datoteka dostupna online (podaci razdvojeni zarezima), trebali biste koristiti naredbu
read.csv()
umjestoread.table()
.Za uvoz Excel datoteke trebali biste koristiti naredbu
read_excel()
iz paketareadxl
Nadalje, sekundarni se podaci mogu izravno učitati u RStudio iz javno dostupnih izvora. Nekoliko paketa podržavaju tu opciju.
paket | naredba | opis |
---|---|---|
eurostat |
get_eurostat() |
EUROSTAT podaci |
WDI |
WDI_data() |
World Bank podaci |
ecb |
get_data() |
European Central Bank podaci |
quantmod |
getSymbols() |
Yahoo Finance podaci |
OECD |
get_dataset() |
OECD podaci |
- Za uvoz podataka s EUROSTAT-a, najprije trebate provjeriti navigacijsko stablo na stranici statističkog ureda Europske unije https://ec.europa.eu/eurostat/data/database kako biste pronašli i identificirali skup podataka koji vas zanima, kao i kodove zemalja, varijabli/indikatora te ostale relevantne identifikatore.
Zadatak 8. Uvezite podatke o finalnoj potrošnji za 2023. godinu s EUROSTAT-a za istih \(10\) zemalja kao u TABLICI 1.1
. Također, uvezite podatke o dohotku (plaće i naknade) za iste zemlje u istoj godini. Prikažite dijagram rasipanja s potrošnjom na y-osi i dohotkom na x-osi (obje varijable izražene u milijunima eura u tekućim cijenama). Prikažite drugi dijagram rasipanja s obje logaritmirane varijable.
install.packages("eurostat") # Instaliranje paketa "eurostat" (potrebno samo jednom)
library(eurostat) # Učitavanje instaliranog paketa iz knjižnice
# Uvoz podataka o potrošnji s EUROSTAT-a s odgovarajućim filtrima
=get_eurostat("nama_10_gdp",filters=list(geo=c("BG","CZ","EE","HR","IT","LV","HU","PL","RO","SI"),na_item="P3",time=2023,freq="A",unit="CP_MEUR"),cache=FALSE)
potrosnja=potrosnja$values # Izdvajanje vrijednosti potrošnje
potrosnja# Uvoz podataka o dohotku s EUROSTAT-a s odgovarajućim filtrima
=get_eurostat("nama_10_gdp",filters=list(geo=c("BG","CZ","EE","HR","IT","LV","HU","PL","RO","SI"),na_item="D11",time=2023,freq="A",unit="CP_MEUR"),cache=FALSE)
dohodak=dohodak$values # Izdvajanje vrijednosti dohotka
dohodak# Prvi dijagram rasipanja
plot(dohodak,potrosnja,pch=19,col="blue",main="Dijagram rasipanja (1)")
# Drugi dijagram rasipanja
plot(log(dohodak),log(potrosnja),pch=19,col="blue",main="Dijagram rasipanja (2)")
\(~~~\)
- Argument
cache=FALSE
omogućuje preuzimanje posljednje ažuriranih podataka izravno s EUROSTAT-a, što može dulje potrajati, posebno ako je skup podataka velik.
Zadatak 9. Instalirajte i učitajte quantmod
paket. Iz Yahoo Finance izvora uvezite dnevne podatke Apple dionice za razdoblje od 1. siječnja 2023. do 31. prosinca 2023. (jedna godina). Ispišite prvih nekoliko redaka i posljednjih nekoliko redaka uvezenih podataka. Izdvojite cijene zatvaranja (engl. closing prices) kao objekt cijene
i prikažite ih linijskim grafikonom. Izračunajte dnevne prinose na temelju cijena zatvaranja (objekt prinosi
) i prikažite ih također linijskim grafikonom. Instalirajte i učitajte paket moments
, koji podržava naredbe za koeficijent asimetrije (engl. skewness) i koeficijent zaobljenosti (engl. kurtosis). Koristite naredbu datasummary()
za prikaz statističkih informacija o dnevnim prinosima: minimum, maksimum, sredina, standardna devijacija, asimetrija i zaobljenost. Prikažite dnevne prinose histogramom s relativnim frekvencijama i dodajte normalnu krivulju.
# Instaliranje i učitavanje paketa "quantmod"
install.packages("quantmod")
library(quantmod)
# Uvoz podataka Apple dionice iz Yahoo Finance izvora
getSymbols("AAPL",src="yahoo",from="2023-01-01",to="2023-12-31")
head(AAPL) # Ispis prvih 6 redaka
tail(AAPL) # Ispis zadnjih 6 redaka
=AAPL$AAPL.Close # Izdvajanje samo zaključnih cijena
cijeneplot(cijene,main="Dnevne cijene zatvaranja") # Linijski prikaz cijena zatvaranja
=diff(log(cijene)) # Izračun dnevnih prinosa kao prvih diferencija logaritamskih vrijednosti
prinosiplot(prinosi,main="Dnevni prinosi") # Linijski prikaz dnevnih prinosa
# Instaliranje i učitavanje paketa "moments"
install.packages("moments")
library(moments)
# Tablični prikaz statističkih informacija o dnevnim prinosima
datasummary(min+max+mean+sd+skewness+kurtosis~AAPL.Close,data=data.frame(prinosi[-1,]),fmt=4)
# Histogram relativnih frekvencija s normalnom krivuljom
hist(prinosi,prob=TRUE,main="Histogram dnevnih prinosa dionice Apple")
curve(dnorm(x,0.0017,0.0125),col="red",add=TRUE)
\(~~~\)
- Paket
quantmod
ovisi o nekoliko drugih paketa, a RStudio će automatski instalirati povezane pakete, ako već prije nisu instalirani.