Считывать только первые n строк csv-файла в R

#r #csv

#r #csv

Вопрос:

Я действительно просто хочу заголовок csv-файла в R, не уверен, какой лучший способ это сделать.

Я подумал что-то вроде

 read.csv(readLines("file.csv", n=3))
  

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

Я ищу что-то лучшее, чем просто записывать выходные данные readLines в file и считывать их обратно или вручную выполнять синтаксический анализ заголовка, который уже выполняется read.csv. (Конечно, эти подходы будут работать, но они кажутся немного грубыми; в более общем плане я пытаюсь понять, как лучше перенаправить текст как соединение).

Ответ №1:

Существует nrows= аргумент read.table() , который передается через.

Пример:

 R> dim(read.csv("/usr/local/lib/R/site-library/fortunes/fortunes/fortunes.csv", 
       nrows=3, header=TRUE, sep=";"))
[1] 3 5
R> 
  

(Простите sep=";" , но я хотел выбрать файл, который, вероятно, будет у нас обоих …)

Комментарии:

1. Моя благодарность! Не уверен, как я это упустил. Все еще любопытно, как превратить текст в соединение без записи в файл, но я думаю, это отдельная проблема.

2. @cboettig ?textConnection ?

3. @cboettig вы могли бы подумать о создании вопроса для этой конкретной проблемы, с которой вы столкнулись, и ответить на него. Это создаст ссылку для других людей с той же проблемой.