Найкращий спосіб просто зберігати дані для статистичного аналізу в R [закрито]


12

Я вже деякий час використовую текстові файли, щоб зберігати свої дані для R без жодних проблем. Але для недавнього проекту розміри файлів стають занадто великими, щоб обробляти текстові файли. Яка найкраща проста альтернатива?


5
Яким чином текстові файли стають занадто великими? Ви боїтесь за їх цілісність? Не можете відкрити їх у якомусь іншому програмному забезпеченні? Вони занадто повільні для завантаження? Занадто великий для вашого жорсткого диска (ноутбука?)?
Гала

3
+1 Управління даними в міру зростання проектів є універсальною проблемою в аналізі даних (і навряд чи специфічна для цього R). Основна проблема - це цілісність даних, а не розмір файлу: пропонування якоїсь форми стиснення просто затьмарює це, а не вирішує його.
whuber

Над певним розміром txt, здається, не працює. Я можу додати зайві дані до файлу txt і завантажити його в R, але додаткові дані не є у R. (Btw ці дані досить багаті, тому в той час як стиснення може трохи допомогти, я не отримав би мене так далеко, і я підозрюю, що мій проект зростає, я знову закінчуватимуться тими ж проблемами.)
Іграшка Молто,

Вам потрібно розповісти більше про свої дані. Не існує такого поняття, як "найкращий спосіб до будь-яких даних".
zx8754

Ви це маєте на увазі read.tableчи read.csvмовчите невдачі? Ви абсолютно впевнені, що у вас немає декількох файлів і якась помилка кодування (неправильний шлях, неправильне ім'я файлу тощо)? Щоб виправити ідеї, ви можете також дати нам уявлення про те, скільки змінних і скільки записів ви приблизно маєте справу.
Гала

Відповіді:


10

Стандартний R підхід полягає у використанні saveта load. Якщо ви запустите saveваш кадр даних після імпорту та анотування, ви можете вказати, compress=TRUEі ви будете вражені стисненням та швидким loadчасом. Це особливо добре спрацьовує, якщо розмір об'єкта менше 400 Мб. В іншому випадку, ознайомтеся з деякими пропозиціями, викладеними вище, чи потужним ffпакетом у Р.

HmiscПакет має невеликі обгортки Saveі Loadзробити вище ще більш безболісним:

mydata <- csv.get(...)  # Hmisc package, has several options
Save(mydata)   # writes mydata.rda to current working directory
....
Load(mydata)   # reads mydata.rda and creates mydata data frame

9

Погляньте на бази даних SQLite3. Кожна база даних є файлом, тому вона не потребує налаштування сервера баз даних.

Щоб створити базу даних:

$ sqlite3 my_db.db3
> CREATE TABLE my_table ( col1 TEXT );

Для використання з R https://gist.github.com/lynaghk/1062939


+1 Використання фактичної бази даних - це величезний крок у правильному напрямку.
whuber

Це був би відповідний інструмент? cran.r-project.org/web/packages/RSQLite/index.html
EngrStudent

Дякую, я спробую цей маршрут. Я також подивився MySQL, але, здається, більше, ніж мені потрібно.
Іграшка Молто

4

Існує ряд загальних варіантів.

  • Ви можете стиснути текст.
  • Ви можете переходити до тексту в двійковому вигляді, а не писати в ascii

Велике стиснення залежить від даних.

Моя здогадка (а ви її не вказали, тому я мушу здогадуватися) полягає в тому, що ви хочете зберігати дані, подібні до електронних таблиць, у чомусь іншому, ніж у форматі csv (з комами).

Один з моїх улюблених форматів (я люблю MatLab) - це hdf.

Ось інформація, що стосується RF:

Це суперкомп'ютерний формат зберігання даних високої щільності. Це може бути дуже швидко та ефективно. Він також (не дивно) щільніше, ніж зашифрований текст.


3

Стандартні функції зчитування файлів у R тепер автоматично автоматично зчитують gzipped файли. Отже, просто запустіть просту компресію gzip на своїх даних і прочитайте, як завжди, як би це був звичайний текст.

read.table('myfile.gz')

Акуратно! Я не знаю, що. Дякую.
EngrStudent
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.