У меня есть большой кадр данных, состоящий из 9 mio объектов на сервере RStudio со следующим форматом (есть много показаний для каждого installnr), и когда я запускаю скрипт, вычисляющий средства и стандартные строки ошибок всех показаний в час, R аварий. Каков наилучший способ избежать больших вычислений и превышения объема памяти?Каков наилучший способ сократить время вычисления при обработке большого кадра данных?
installnr readdate readings
1 002345 2014-08-17 {0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,2,0}
2 002345 2014-08-18 {0,0,0,0,0,0,4,1,0,0,0,0,1,1,1,1,0,1,1,1,1,1,0,1}
3 002345 2014-08-19 {0,1,2,1,0,1,1,1,2,0,1,0,1,0,1,0,1,0,1,0,2,1,1,0}
4 013459 2014-08-17 {1,0,0,1,0,1,1,1,1,0,1,0,1,0,1,0,0,1,3,1,0,0,1,1}
5 127465 2014-08-19 {0,1,0,0,1,0,1,1,1,0,0,1,2,0,1,0,0,1,1,0,0,1,1,1}
Пример сценария я бегу следующий:
df$readings = gsub("[{}]", "", as.character(df$readings))
Read1 = strsplit(df$readings, ",")
Readings = matrix(as.numeric(unlist(Read1)), nrow=length(Read1))
colMeans(Readings)
Попробуйте использовать 'data.table' или' dplyr' – Rentrop
Матрица, которую вы создаете, слишком велика, поэтому у вас не хватает памяти. Если вас просто интересует среднее значение, перебирайте каждую строку и сохраняйте общее количество каждого столбца. Разделите на nrow (df) в конце. – thc
Я просто использовал read.csv для импорта полного кадра данных ... – peny