Чтение двухколоночных данных с результатами read.table в трех колонках - PullRequest
0 голосов
/ 20 марта 2019

Я использую read.table() для получения данных с веб-страницы.Таблица данных имеет два столбца и из NIST.Ниже приведен мой код, включая URL-адрес, если вы хотите просмотреть данные:

    options(digits = 12)
    theURL <- "https://www.itl.nist.gov/div898/strd/anova/AtmWtAg.dat"
    AgData <- read.table(theURL, header = TRUE , skip = 59)
    # Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
    # line 1 did not have 3 elements
    AgData$Instrument = as.factor(AgData$Instrument)
    fitAgData = aov(AgWt ~ Instrument, data=AgData)

Я вставил сообщение об ошибке в виде комментария в коде, где оно происходит.

Другие ответы наобмен стека, кажется, имеет дело с отсутствующими значениями, вызывающими эту ошибкуДанные на этом сайте полны, поэтому я не уверен, что является причиной ошибки.

До сих пор я возился со значением skip =;вставил имена столбцов в качестве аргумента read.table;и добавил fill = TRUE к read.table В результате появилась таблица данных с тремя столбцами, один из которых содержал значения NA.Поскольку в таблице есть имена, у меня включен аргумент header=TRUE.

Почему-то read.table() считает, что есть три столбца, и я не вижу способа сказать, что их два.

После пропущенных строк я увидел начало файла следующим образом:

Data:  
      Instrument           AgWt
          1            107.8681568
          1            107.8681465
          1            107.8681572
          1            107.8681785

На самом деле данные выглядят так:

Data:  Instrument           AgWt
           1            107.8681568
           1            107.8681465
           1            107.8681572
           1            107.8681785

1 Ответ

1 голос
/ 21 марта 2019

Идентифицирует «Данные:» как имя вашего первого столбца. Таким образом, он сканирует заголовок и определяет 3 столбца, затем получает данные и видит только 2. Попробуйте пропустить эту строку и затем вручную назвать ваши данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...