1. ProgrammeringRHvordan bruke read.csv () til å importere data i R

Av Andrie de Vries, Joris Meys

En av de enkleste og mest pålitelige måtene å få data til R på er å bruke tekstfiler, spesielt CSV-filer (komma-separerte verdier). CSV-filformatet bruker kommaer for å skille de forskjellige elementene i en linje, og hver datalinje ligger på sin egen linje i tekstfilen, noe som gjør CSV-filer ideelle for å representere tabelldata.

Den ekstra fordelen med CSV-filer er at nesten alle dataprogrammer støtter eksport av data til CSV-format. Dette er absolutt tilfelle for de fleste regnearkprogrammer, inkludert Microsoft Excel og OpenOffice Calc.

I følgende eksempler antar du at du har en CSV-fil lagret i en praktisk mappe i filsystemet. For å konvertere et Excel-regneark til CSV-format, må du velge File → Save As, som gir deg muligheten til å lagre filen din i en rekke formater.

Husk at en CSV-fil bare kan representere et enkelt regneark for et regneark. Til slutt, husk å bruke den øverste raden på arbeidsarket (rad 1) til kolonneoverskriftene.

I R bruker du funksjonen read.csv () for å importere data i CSV-format. Denne funksjonen har en rekke argumenter, men det eneste viktige argumentet er fil, som spesifiserer plasseringen og filnavnet. Hvis du vil lese en fil som heter element.csv lokalisert ved f: bruk read.csv () med file.path:

> elementer <- read.csv (file.path ("f:", "element.csv"))
> str (elementer)
'data.frame': 10 obs. av 9 variabler:
 $ Atomic.number: int 1 2 3 4 5 6 7 8 9 10
 $ Navn: Faktor m / 10 nivåer "Beryllium", "Boron", ..: 6 5 7 1 2 3 9 10 4 8
 $ Symbol: Faktor m / 10 nivåer "B", "Vær", "C", "F", ..: 5 6 7 2 1 3 8 10 4 9
 $ Gruppe: int 1 18 1 2 13 14 15 16 17 18
 $ Period: int 1 1 2 2 2 2 2 2 2 2 2
 $ Blokk: Faktor m / 2 nivåer "p", "s": 2 2 2 2 1 1 1 1 1 1
 $ State.at.STP: Faktor m / 2 nivåer "Gass", "Fast": 1 1 2 2 2 2 1 1 1 1
 $ Forekomst: Faktor m / 1 nivå "Primordial": 1 1 1 1 1 1 1 1 1 1
 $ Beskrivelse: Faktor m / 6 nivåer "Alkali metall", ..: 6 5 1 2 4 6 6 6 3 5

R importerer dataene til en dataramme. Som du ser har dette eksemplet ti observasjoner av ni variabler.

Legg merke til at standardalternativet er å konvertere karakterstrenger til faktorer. Dermed er alle kolonnene Navn, Blokk, Tilstand.ST., Forekomst og Beskrivelse blitt konvertert til faktorer. Legg også merke til at R konverterer mellomrom i kolonnenavnene til perioder (for eksempel i kolonnen State.At.STP).

Dette standardalternativet for å konvertere strenger til faktorer når du bruker read.table () kan være en kilde til stor forvirring. Du har ofte bedre å importere data som inneholder strenger på en slik måte at strengene ikke er konverterte faktorer, men forblir tegnvektorer. Hvis du vil importere data som inneholder strenger, bruker du argumentstrengeneAsFactors = FALSE til read.csv () eller read.table ():

> elementer <- read.csv (file.path ("f:", "element.csv"), stringsAsFactors = FALSE)
> str (elementer)
'data.frame': 10 obs. av 9 variabler:
 $ Atomic.number: int 1 2 3 4 5 6 7 8 9 10
 $ Navn: chr "Hydrogen" "Helium" "Litium" "Beryllium" ...
 $ Symbol: chr "H" "He" "Li" "Be" ...
 $ Gruppe: int 1 18 1 2 13 14 15 16 17 18
 $ Period: int 1 1 2 2 2 2 2 2 2 2 2
 $ Blokkering: chr "s" "s" "s" "s" ...
 $ State.at.STP: chr "Gass" "Gass" "Solid" "Solid" ...
 $ Forekomst: chr "Primordial" "Primordial" "Primordial" "Primordial" ...
 $ Beskrivelse: chr "Ikke-metall" "Noble gas" "Alkali metal" "Alkaline earth metal" ...

Hvis du har en fil i EU-formatet (EU) (der komma brukes som desimalskillere og semikoloner brukes som feltutskillere), må du importere den til R ved å bruke funksjonen read.csv2 ().