Преодоление? строка ? или ? Память ? проблема в R студии, собирающей огромную базу данных - PullRequest
1 голос
/ 15 января 2020

У меня есть большая база данных, которую я буду анализировать в Таблице sh. Тем не менее, файлы упорядочены по времени на четверть и имеют большой размер (10 миллионов строк в каждом) и являются файлами sas7bdat. Я пытаюсь сложить эти файлы так, чтобы они могли быть проанализированы одновременно и связаны с другими файлами в таблице (в Таблице нет функции суммирования). Я использую рабочий стол MA C (так как это предоставлено моим работодателем)

Вот мой макет

library(haven)

#Pull in sas7bdat files into R studio

2001q1<- read_sas("Year 2001 quarter 1", NULL)

2001q2<- read_sas("Year 2001 quarter 2", NULL)

# and so on until

2018q4 <- read_sas("Year 2018 quarter 4", NULL)

#Combine rows 

2001_2018_ALL <-rbind(2001q1, 2001q2...2018q4)

#Write file

write_sas(2001_2018_ALL, "2001_2018_ALL")

Проблема в том, что на шаге rbind я получаю следующая ошибка:

Ошибка в if (n> 0) c (NA_integer_, -n) else integer (): пропущенное значение там, где требуется TRUE / FALSE

Кроме того: Предупреждающие сообщения:

1: В Make.row.names (nmi, ri, ni, nrow): NA, введенные путем принуждения в целочисленный диапазон 2: В nrow + ni: произведены NA по целочисленному переполнению

Я знаю, что в самом коде нет изъяна, как будто я беру меньшие куски (скажем, 2001-2003 или 2004-2006), это успешно. Однако, если я пытаюсь объединить больше файлов (в сотни миллионов строк), я получаю эту ошибку.

Есть мысли о том, почему это происходит? или альтернативные способы складирования данных?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...