R — как я могу вывести содержимое файла на консоль вывода?

#r

#r

Вопрос:

Я просто хочу прочитать файл и вывести его в консоль. печать (строки чтения (…)) ) — лучшее, что я могу сделать на данный момент, но мне не нужен построчный идентификатор, мне просто нужен файл как есть.

Ответ №1:

Используйте writeLines вместо print . По умолчанию con для writeLines используется stdout() , так что writeLines(readLines(...)) звучит правильно.

Смотрите ?writeLines .

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

1. Есть ли какой-нибудь простой способ получить (скажем) первые 50 строк?

2. n = 50 stat.ethz.ch/R-manual/R-devel/library/base/html/readLines.html

Ответ №2:

Вы могли бы использовать system для вызова системной команды.

 system("cat yourfile.txt")
  

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

1. OT: получите Rtools, вы никогда не будете оглядываться назад

Ответ №3:

Вы должны указать длину (которая может быть слишком большой), но, возможно, readChar это помогло бы:

 cat(readChar(filename, 1e5))
  

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

1. хорошая идея. Я буду придерживаться readlines, поскольку это гарантирует, что все строки будут прочитаны

2. вы не можете объединить оба варианта в одном ответе?

3. Я мог бы, но я думал, что разные ответы должны быть в, ну, разных ответах. Я искал это в FAQ, но не нашел, поэтому я не уверен, где я это видел, если вообще где-либо видел. Что рекомендуется?

Ответ №4:

Я не знаю точно, что вы имеете в виду, но ?cat возможно, это то, что вы ищете.

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

1. кажется, это работает: cat(readLines( FILEPATH ) , sep = » n») , хотя немного неудобно, что я читаю файл построчно только для того, чтобы записать его с новым разделителем строк. Возможно, есть функция, которая просто считывает весь файл в строку без каких-либо разделителей или вообще какого-либо синтаксического анализа — просто «как есть»?

2. Это ужасный ответ, поскольку он не имеет ничего общего с содержимым файла. В частности, вызов cat(file=<ваше имя файла>) приведет к удалению содержимого вашего файла, поскольку аргумент file является переопределением вывода для cat.

Ответ №5:

Вот элегантный способ, использующий dplyr

 library(dplyr)
readLines("init.R") %>% paste0(collapse="n") %>% cat
  

или с базовым R

 cat(paste0(readLines("init.R"), collapse="n"))
  

не забудьте заменить init.R путь к файлу myfolder/myfile.R

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

1. В этом решении нет ничего dplyr конкретного, вы просто используете magrittr канал ( magrittr.tidyverse.org ). Начиная с версии R 4.0.5, вы также можете использовать базовый канал R |>