#r
#r
Вопрос:
Я новичок в R, и я пытаюсь прочитать сжатый файл .tsv в R для анализа, но у меня возникают проблемы с чтением всего файла. Сценарий, который я использовал, написан поставщиками данных, поэтому я предполагаю, что это должен быть правильный код, но я получаю сообщение, в котором говорится
In scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :EOF within quoted string
и я вижу только 6 017 494 из 7 430 874 строк данных.
Сценарий выглядит следующим образом:
knitr::opts_chunk$set(echo = TRUE)
library(data.table)
#TODO: change directory as needed
setwd("directory")
data<- read.delim(unz("patent.tsv.zip", "patent.tsv"), header=TRUE, sep ="t", comment.char="#", stringsAsFactors = FALSE, quote=""", fill = TRUE)
Я просмотрел несколько вопросов о предупреждении EOF и некоторые предлагаемые настройки quote=""
, и я попробовал это, но тогда чтение данных занимает целую вечность. Я предполагаю, что в моем случае это не работает, потому что кавычка уже установлена в """
? Не уверен, что это значит.. Кто-нибудь может мне помочь?
Комментарии:
1. Не могли бы вы попробовать с
readr
библиотекой. Он часто более надежен и быстрее, чем базовый,read.delim
предоставляемый в R. Здесь та же функция вreadr
библиотеке. Если у вас все еще есть ошибка, вы правы, весьма вероятно, что ошибка возникает из-за кавычек.2. Я попробовал библиотеку ‘readr’, и это определенно быстрее, но она зависает примерно на 97% и показывает сообщение об ошибке использования памяти. Я думаю, что моя оперативная память недостаточно велика, чтобы вместить весь набор данных. Есть ли параметр в библиотеке readr, который позволяет мне читать только первые несколько тысяч строк данных? Я не смог найти его на странице описания.
3. Да, вы можете использовать аргумент
n_max
, чтобы ограничить количество строк, которые вы хотите прочитать. Это есть в документации здесь .