В настоящее время я создаю свой первый пакет R, и я запутался в способе обработки текстовых данных. Я хорошо понял, что набор данных должен быть помещен в подкаталог ./data, сохранен в один из форматов .rda, .txt или .csv, а затем может быть загружен функцией data()
.Создание пакета R: путают о том, как обрабатывать текстовые данные
Однако функция data()
такая же, как функция read.table()
, то есть она читает текстовый файл (.txt или .csv) и загружает его в файл data.frame. Это не то, что я хочу: я просто хочу получить доступ к текстовому файлу (.txt или .csv) и загрузить его с помощью собственной функции чтения, которую я разработал в своем исходном коде R пакета. (это специальная функция чтения со специальными проверками в зависимости от того, что ожидает пакет).
После прочтения много вопросов в Интернете, я нашел функцию system.file() полезно и использовать его таким образом, в моем тестовом файле:
current_dir=system.file(package="MYPACKAGE")
myTextFile=paste(current_dir,"/data/myTextFile.csv",sep="")
# Then I use my own function to load it:
myOwnReadingFunction(myTextFile)
Это работало отлично, и мой R CMD check
прошло хорошо .... пока я не следовать советованию журнала R CMD check
:
«Примечание: значительно лучше сжатие может быть получено с помощью R CMD построить --resave-данные»
Tiping R CMD build --resave-data
до R CMD check
переносит мои файлы .csv в .csv.bz2 и .csv.xz! Так что то, что я написал в своем тестовом файле (см. Выше), теперь не работает.
Конечно, я думаю, я мог бы, например, изменить его:
myTextFile=paste(current_dir,"/data/myTextFile.csv.bz2",sep="")
Но я действительно интересно, если это хороший способ для обработки текстовых файлов в пакете R. Мне это кажется немного «сложным». Является ли это «хорошей практикой»? Не является ли другим способом простого доступа к текстовым файлам без его загрузки? У кого-то уже была такая же ситуация?
Бонус вопрос: почему не R CMD build --resave data
использовать то же сжатие для моих двух CSV-файлов? (То есть: .bz2 и .xz)
Я не думаю, что вы можете сжать файл и сохранить его как необработанный текст. Также обратите внимание, что вы получаете «Примечание», а не «предупреждение» или «ошибка» ... –
На самом деле, у меня также есть некоторые .rda-файлы в моем ./data подкаталоге. Возможно, вы правы, и примечание может быть только для этих файлов .rda, но как выбрать файлы, которые будут затронуты параметром --resave-data? Более того, хотя предложение начинается со слова «Примечание», оно отображается как ПРЕДУПРЕЖДЕНИЕ: * проверка данных для ASCII и несжатых сохраняет ... ПРЕДУПРЕЖДЕНИЕ – Totoro