Closed vidamaver closed 7 years ago
Stolpce brišeš tako, da jih prepišeš z NULL
, npr.
tabela$stevnik <- NULL
tabela$opis <- NULL
V tabeli Zracne_emisije_po_drzavah me zanima, kako lahko podatke v stolpcu "kolicina_v_tonah" spremenim tako, da bodo številsko lepe oblike in ne oblike: 1.177852e+07 ?
Poleg zgornjega me zanima tudi, zakaj mi ob kliku na source vrne napako:
source('~/R/APPR-2017/uvoz/uvoz1.R') Error in
colnames<-
(*tmp*
, value = c("leto", "drzava", "tip_izpusta", : 'names' attribute [6] must be the same length as the vector [5],
tabelo pa mi naredi tako kot je treba?
Številke v eksponentni notaciji naj te zaenkrat ne motijo - gre samo za to, da se ne prikaže preveliko število. Možno bi bilo sicer stolpec deliti z npr. 1000000
- potem bi seveda imela števila v milijonih ton (če je to seveda smiselno).
Napako dobiš zato, ker imaš očitno v razpredelnici 5 stolpcev, podaš pa 6 imen.
Še nekaj opomb: na začetku programa uvoz1.R
sta se na začetek prikradli črki vv
, zaradi česar se program ustavi že v naslednji vrstici. Poleg tega nikjer nimaš uvoza razpredelnice Zracne_emisije_po_drzavah
, ji pa vseeno skušaš nastaviti imena stolpcev.
Svetoval bi še, da v imenih stolpcev nimaš posebnih znakov, kot je ^
oziroma kateregakoli operatorja v R-ju, pa tudi presledkov in šumnikov ne (lahko imaš pike ali podčrtaje namesto presledkov). Pazi tudi na velikost črk pri podajanju datotek - tvoj program uvoz1.R
ima končnico z veliko začetnico, zato to upoštevaj tudi v poročilu - nekateri sistemi so namreč na to občutljivi. Del poročila iz vzorca lahko zaenkrat pobrišeš (boš kasneje dodala svojo vsebino), da se ti bo poročilo prevedlo.
Ko uvažam tabelo iz Eurostata, torej Zracne_emisije_po_drzavah, mi vse podatke vrne v stolpec leto, v vseh ostalih stolpcih pa mi napiše NA. Kaj delam narobe?
Tabelo Zracne_emisije_po_drzavah sem uvozila malo drugače. Ali je sedaj tabela2 v redu?
Ker imaš v številih vejice kot ločila tisočic, bo potrebno ustrezno popraviti locale
:
sl <- locale("sl", decimal_mark = ".", grouping_mark = ",")
Za branje raje uporabi funkcijo read_csv
iz knjižnice readr
, pri čemer bo potrebno povedati še, da dvopičja pomenijo manjkajoče podatke:
tabela2 <- read_csv("podatki/Zracne_emisije_po_drzavah.csv", locale = sl, na = ":")
Da bo tabela res v obliki tidy data, pobriši še vrstice, ki se nanašajo na združene podatke (podatki za Evropsko unijo in za vsa področja industrije).
Vrača mi tudi sledečo napako:
source('~/R/APPR-2017/uvoz/uvoz1.R')
Parsed with column specification:
cols(
2008
= col_integer(),
European Union (28 countries)
= col_character(),
Carbon dioxide
= col_character(),
Activities of extraterritorial organisations and bodies
= col_character(),
Tonne = col_character(),
880
= col_number()
)
Kaj bi lahko bilo narobe?
Mislim, da mi je izbris vrstic uspel. Še vedno pa mi javlja zgoraj skopirano napako.
Tole ni napaka, ampak samo obvestilo, kako je bila razpredelnica uvožena. Sicer pa bo bolje, če vrstice brišeš tako:
tabela2 <- read_csv(file = "podatki/Zracne_emisije_po_drzavah.csv", locale = sl, na = ":") %>%
filter(GEO != "European Union (28 countries)")
Podatki za celotno Evropsko unijo se namreč pojavijo tudi kasneje (za druga leta). Na podoben način (lahko kar nadaljuješ z veriženjem) se lahko znebiš še vrstic, ki se nanašajo na vsa področja industrije.
Še to: ukaza View
ne vključuj v program, saj ne želiš, da bi se ti razpredelnica prikazala vsakič, ko prevedeš poročilo. V poročilu pazi, da je koda ločena od besedila - vsa koda se nahaja med vrsticama
```{r ime_bloka, parametri}
in
```
Besedilo bo tako na belem ozadju, koda pa na sivem. Na začetku poročila si očitno pobrisala vrstico, ki označuje konec bloka kode. Svetujem, da ukazov library
nimaš v samem poročilu - v ta namen je vključen program libraries.r
. Če potrebuješ kakšno dodatno knjižnico, bo najbolje, če jo tam vključiš, pa bo na voljo pri prevajanju poročila. Prav bo prišlo tudi pri sprotnem izvajanju kode - pred začetkom izvajanja enostavno poženi vrstico, kjer kličeš libraries.r
, pa se bodo naložile vse potrebne knjižnice.
Najlepša hvala. Mislim, da sem popravila in bi moralo biti sedaj v redu.
Sedaj izgleda v redu. Kot sem napisal zgoraj, iz poročila pobriši še del, ki je ostal iz vzorca, da ga boš lahko prevedla (gumb Run Document). Potem bo ta zadeva rešena in jo lahko zapreš z gumbom Close issue oziroma Close and comment, če zraven še kaj napišeš.
V poročilu pobriši vse pod vrsticama
head(tabela_povrsin)
```
Če postaviš #
pred vsako vrstico, to v RMarkdownu ni komentar, pač pa se ta znak uporablja za naslove. Zato je potrebno te vrstice dejansko pobrisati - če jih boš potrebovala kasneje, lahko vedno pogledaš v vzorčno različico poročila.
Pri uvozu podatkov iz spletne strani sem naletela na težavo in sicer iz tabele želim izbrisati stolpca "stevnik" in "opis", ker ju ne rabim, vendar ne vem, kako naj to storim.
Lep pozdrav