Подтвердить что ты не робот

Импортировать файл dat в R

Извините заранее за простоту этого вопроса. Я пытаюсь импортировать .dat файл с веб-сайта в R со следующим кодом:

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

Я хочу получить доступ к части Value.frame, однако я не уверен в размерах data.frame, если я набираю ncol (data), он возвращает 1, который я ожидал три. Как получить доступ к столбцу "третий" этого файла data.frame?

4b9b3361

Ответ 1

В файле данных есть некоторые строки дополнительной информации перед фактическими данными. Пропустите их с аргументом skip:

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

Простой способ проверить это, если вы не знакомы с набором данных, - это сначала использовать readLines для проверки нескольких строк, как показано ниже:

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"

Здесь мы видим, что фактические данные начинаются с [4], поэтому мы знаем, что пропустить первые три строки.

Update

Если вам действительно нужен только столбец Value, вы можете сделать это:

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

Опять же, readLines полезен для того, чтобы помочь нам определить фактическое имя столбцов, которые мы будем импортировать.

Но я не вижу большого преимущества для этого, чтобы прочитать весь набор данных и извлечь его позже.