Импорт текстового файла в виде отдельной символьной строки

Как импортировать простой текстовый файл в виде отдельной символьной строки в R? Я думаю, что у этого, вероятно, будет очень простой ответ, но когда я пробовал это сегодня, я обнаружил, что не могу найти функцию для этого.

Например, предположим, что у меня есть файл foo.txt с чем-то, что я хочу textmine.

Я попробовал:

 scan("foo.txt", what="character", sep=NULL) 

но это все равно вернуло вектор. Я немного работал с ним:

 paste(scan("foo.txt", what="character", sep=" "),collapse=" ") 

но это довольно уродливое решение, которое, вероятно, тоже нестабильно.

Вот вариант решения от @JoshuaUlrich, который использует правильный размер вместо жестко кодированного размера:

 fileName <- 'foo.txt' readChar(fileName, file.info(fileName)$size) 

Обратите внимание, что readChar выделяет пространство для количества readChar(fileName, .Machine$integer.max) вами байтов, поэтому readChar(fileName, .Machine$integer.max) не работает хорошо ...

В случае, если кто-то еще смотрит на этот вопрос через 3 года, в readr-файле Хэдли Уикхэма есть удобная read_file() , которая сделает это за вас.

 install.packages("readr") # you only need to do this one time on your system library(readr) mystring <- read_file("path/to/myfile.txt") 

Я бы использовал следующее. Он должен работать отлично, и не кажется уродливым, по крайней мере для меня:

 singleString <- paste(readLines("foo.txt"), collapse=" ") 

Как насчет:

 string <- readChar("foo.txt",nchars=1e6) 

У пакета readr есть функция, которая сделает все для вас.

 install.packages("readr") # you only need to do this one time on your system library(readr) mystring <- read_file("path/to/myfile.txt") 

Это заменяет версию в пакете stringr.

Жаль, что решение Шарона больше нельзя использовать. Я добавил решение Josh O’Brien с модификацией asieira в файл .Rprofile:

 read.text = function(pathname) { return (paste(readLines(pathname), collapse="\n")) } 

и используйте его так: txt = read.text('path/to/my/file.txt') . Я не смог воспроизвести поиск writeLines(txt) ‘s (28 окт. 14), а writeLines(txt) показал содержимое file.txt . Кроме того, после write(txt, '/tmp/out') команда diff /tmp/out path/to/my/file.txt сообщала о различиях.

readChar не обладает большой гибкостью, поэтому я объединил ваши решения (readLines и paste).

Я также добавил пробел между каждой строкой:

 con <- file("/Users/YourtextFile.txt", "r", blocking = FALSE) singleString <- readLines(con) # empty singleString <- paste(singleString, sep = " ", collapse = " ") close(con) 
  • Матрица корреляции сюжетов в граф
  • как вы отправляете письмо от R
  • Как преобразовать таблицу в кадр данных
  • Разница между `% in%` и `==`
  • Как вы читаете в нескольких файлах .txt в R?
  • Объедините (rbind) кадры данных и создайте столбец с именем исходных кадров данных
  • Условно удалить строки Dataframe с R
  • Выведите R-команду через что-то вроде try ()
  • Последовательные / подвижные суммы в векторе в R
  • Найти ближайшее значение в векторе с бинарным поиском
  • Проверить наличие директории и создать, если не существует
  • Interesting Posts

    Как определить, какая программа отправляет пакет, записанный в Wireshark?

    iOS 7 | Панель навигации / кнопки панели инструментов очень близко к строке состояния

    Как обслуживать изображение с помощью nodejs

    Как я могу отказаться от Windows 7 до Windows Vista?

    Clipboard.GetText возвращает null (пустая строка)

    Фильтрация строк данных.файла по логическому условию

    Идентификация примитивных типов в шаблонах

    Android RecyclerView с GridLayoutManager делает диапазон элементов несколькими рядами

    Экран ноутбука как монитор ПК?

    есть ли альтернатива DOMAttrModified, которая будет работать в webkit

    Неисправность работы с камерой в onActivityResult

    chrome может воспроизводить видео html5 mp4, но html5test сказал, что хром не поддерживает видеокодек mp4

    Получение IP-адреса текущего компьютера с использованием Java

    Назначьте переменную внутри блока переменной переменной вне блока

    Регулярное выражение для комментариев линии линии от C #

    Давайте будем гением компьютера.