web-dev-qa-db-fra.com

importer un fichier de données dans R

Toutes mes excuses par avance pour la simplicité de cette question. J'essaie d'importer un fichier .dat d'un site Web dans R avec le code suivant:

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

Je souhaite accéder à la partie Value du nom data.frame. Cependant, je ne suis pas sûr des dimensions du data.frame. Si je tape ncol (data), il retourne 1 que j'en attendais trois. Comment accéder à la "troisième" colonne de ce data.frame?

47
KatyB

Le fichier dat contient quelques lignes d'informations supplémentaires avant les données réelles. Ignorez-les avec l'argument skip:

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

Un moyen facile de vérifier cela si vous n'êtes pas familier avec l'ensemble de données est d'utiliser d'abord readLines pour vérifier quelques lignes, comme ci-dessous:

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"

Ici, nous pouvons voir que les données réelles commencent à [4], nous savons donc ignorer les trois premières lignes.

Mise à jour

Si vous vraiment ne vouliez que la colonne Value, vous pourriez le faire par:

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

Encore une fois, readLines est utile pour nous aider à comprendre le nom réel des colonnes que nous allons importer.

Mais je ne vois pas beaucoup l'avantage de le faire par rapport à la lecture de l'ensemble du jeu de données et à son extraction ultérieure.

53