Как разместить наборы данных в пакет R

Я создаю свой собственный пакет R, и мне было интересно, какие возможные методы я могу использовать для добавления наборов данных временного ряда в свой пакет. Вот специфика:

Я создал подкаталог пакета, называемый данными, и я знаю, что это место, где я должен сохранять наборы данных, которые я хочу добавить в свой пакет. Я также сознаю, что файлы, содержащие данные, могут быть .rda,.txt или .csv файлами.

Каждая серия данных, которую я хочу добавить в пакет, состоит из одного столбца чисел (например, формы 340 или 4.5), и каждая серия данных отличается по длине.

До сих пор я сохранил все наборы данных в файл .txt. Я также успешно загрузил данные с помощью функции data(). Однако проблема не решена.

Проблема состоит в том, что каждая серия данных загружается как фактор, за исключением серии, большей по длине. Серии, которые загружаются как факторы, содержат отсутствующие значения (формы "." ). Я должен был добавить эти недостающие значения, чтобы каждый столбец данных был таким же по длине. Я попытался сохранить данные как неравные столбцы, но после вызова данных() я получил сообщение об ошибке.

Следствием добавления отсутствующих значений для загрузки данных является то, что после загрузки данных мне нужно удалить NA, чтобы продолжить анализ данных! Таким образом, это явно не лучший способ сделать что-то.

В идеале (я полагаю), я хотел бы, чтобы данные загружались как числовые векторы или как список. Таким образом, мне не понадобится NA, прикрепленная к концу каждой серии.

Как решить эту проблему? Должен ли я сохранять все данные в один файл? Если да, то в каком формате я должен это делать? Возможно, я должен сохранить наборы данных в несколько файлов? Опять же, в каком формате? Каков наилучший практический способ сделать это? Любые советы были бы очень благодарны.

Ответ 1

Я не уверен, правильно ли понял ваш вопрос. Но, если вы отредактируете свои данные в своем любимом формате и сохраните с помощью

save(myediteddata, file="data.rda")

Данные должны быть загружены точно так, как вы видели их в R.

Чтобы загрузить все файлы в каталог данных, вы должны добавить

LazyData: true

К вашему файлу DESCRIPTION в вашем пакете.

Если это не поможет вам опубликовать один из ваших файлов и распечатать нужный формат, это поможет нам вам помочь;)

Ответ 2

В дополнение к сохранению в качестве файлов rda вы также можете загрузить их как числовые с помощью:

 read.table( ... , colClasses="numeric")

Или как нефакторный текст:

 read.table( ..., as.is=TRUE) # which does pretty much the same as stringsAsFactors=FALSE
 read.table( ..., colClasses="character")

Также представляется, что функция data принимает эти аргументы sinc, задокументированные как простая оболочка для read.table(..., header=TRUE).

Ответ 3

Предпочтительное место сохранения ваших данных зависит от его формата.

Как Хэдли предложил:

  • Если вы хотите сохранить двоичные данные и сделать их доступными для пользователя, поместите его в data/. Это лучшее место для размещения примерных наборов данных.
  • Если вы хотите сохранить проанализированные данные, но не сделать его доступным для пользователь, поместите его в R/sysdata.rda. Это лучшее место для размещения данных что вам нужны ваши функции.
  • Если вы хотите сохранить необработанные данные, поместите его в inst/extdata.

Я предлагаю вам взглянуть на связанную главу, подробно рассказывая о работе с данными при разработке пакетов R.