Проблемы с производительностью - выделение нескольких больших матриц в списке - PullRequest
0 голосов
/ 05 декабря 2018

Уважаемые коллеги, я пытаюсь выделить 349 матрицу из примерно 387024 элементов (17520x11 mxn) в список без цикла для.

Код следует этой структуре

loading libraries
query to a database to fetch the number of a product
lsDF<-list()
for (i in 1:length(product_number)){
    querypart_1<-content
    i=as.numeric(product_number[i]) #index
    querypart_2<-content
    Query_total<-str_c(querypart_1,i,querypart_2)
    df<-as.data.table(dbFetch(dbSendQuery(DB, Query_total)) #fetching columns for the specified product
    df<-df %>% #dplyr operations and calculations
    df<-as.matrix(df)
    lsDF[[i]]<-df
}

Однако какВы можете ожидать, что мой RStudio обрывается, если запустить цикл.Код отлично работает, когда я устанавливаю значение i = и запускаю его вне цикла.

Знаете ли вы лучшее решение для этого?

1 Ответ

0 голосов
/ 07 декабря 2018

Что-нибудь особенное @csgroen.Наконец, я заставил его работать после нескольких попыток, он сломался 5 раз (максимум достиг файла 217), а последнее испытание достигло 349. Но самое неприятное, что я загружаю файлы в списке с помощью кода ниже:

ldf <- list() # creates a list
listcsv <- dir(pattern = "*.csv")
for (i in 1:length(product_number)){
    ldf[[i]]<-read_csv(listcsv[i],col_types = cols(X1 = col_skip(), X2 = col_date(format = "%F"), X3 = col_datetime(format = "%F %T"), X4 = col_integer()))
}

А размер был всего 1,5 ГБ.У меня 16 ГБ ОЗУ и ограничитель памяти R тоже 16 ГБ, поэтому я не понимаю, что происходит.

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