Я пытаюсь прочитать файл TSV в R, но он выдает ошибку о несоответствии элементов - PullRequest
1 голос
/ 20 апреля 2020

Файл, в котором вы можете увидеть, как разделены столбцы и т. Д. c.

screenshot of tsv

Фактически, 11-я строка содержит 9 элементов Так в чем же проблема?

imdb5rows <- read.table("/data.tsv", header = TRUE, nrows = 5, fill = TRUE,
                        na.strings = "")

ОШИБКА: больше столбцов, чем имен столбцов

tt0000010   short   Exiting the Factory La sortie de l'usine Lumière à Lyon 0   1895    \N  1   Documentary,Short
tt0000011   short   Akrobatisches Potpourri Akrobatisches Potpourri 0   1895    \N  1   Documentary,Short
tt0000012   short   The Arrival of a Train  L'arrivée d'un train à La Ciotat    0   1896    \N  1   Action,Documentary,Short

[ОБНОВЛЕНИЕ] Вот мой код:

imdb <- read.table(file = "/data.tsv", sep = "\t", header = TRUE, na.strings = "")

Ошибка:

Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
  line 11 did not have 9 elements

1 Ответ

1 голос
/ 20 апреля 2020

Это будет проблемой, когда в строке будет больше элементов. Мы можем использовать fill = TRUE

imdb <- read.table(file = "/data.tsv", sep = "\t",
        header = FALSE, skip = 1, na.strings = "", fill = TRUE)

Или использовать fread для более быстрого чтения, если данные действительно большие

library(data.table)
dt <- fread( "data.tsv")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...