importeer dat-bestand in R

Bij voorbaat excuses voor de eenvoud van deze vraag. Ik probeer een .dat-bestand van een website in R te importeren met de volgende code:

www = "http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat"
data <- read.delim(www, header = TRUE, sep="\t") 

Ik wil toegang krijgen tot het Waarde-gedeelte van het data.frame, maar ik ben niet zeker van de afmetingen van het data.frame, als ik ncol(data) typ, wordt er 1 geretourneerd waarvan ik er drie verwachtte. Hoe krijg ik toegang tot de “derde” kolom van dit data.frame?


Antwoord 1, autoriteit 100%

Het dat-bestand bevat enkele regels extra informatie vóór de eigenlijke gegevens. Sla ze over met het argument skip:

read.table("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat", 
           header=TRUE, skip=3)

Een gemakkelijke manier om dit te controleren als u niet bekend bent met de dataset, is door eerst readLineste gebruiken om een paar regels te controleren, zoals hieronder:

readLines("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat", 
          n=10)
# [1] "Ozone data from CZ03 2009"   "Local time: GMT + 0"        
# [3] ""                            "Date        Hour      Value"
# [5] "01.01.2009 00:00       34.3" "01.01.2009 01:00       31.9"
# [7] "01.01.2009 02:00       29.9" "01.01.2009 03:00       28.5"
# [9] "01.01.2009 04:00       32.9" "01.01.2009 05:00       20.5"

Hier kunnen we zien dat de werkelijke gegevens beginnen bij [4], dus we weten dat we de eerste drie regels moeten overslaan.

Bijwerken

Als u echtalleen de kolom Valuewilde, zoudat kunnen door:

as.vector(
    read.table("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat",
               header=TRUE, skip=3)$Value)

Nogmaals, readLinesis handig om ons te helpen de werkelijke naam te achterhalen van de kolommen die we gaan importeren.

Maar ik zie er niet veelvoordeel in om dat te doen ten opzichte van het inlezen van de hele dataset en later uitpakken.

Other episodes