У меня есть функция в R, которая задыхается, если я применяю ее к набору данных с более чем 1000 строк. Поэтому я хочу разбить свой набор данных на список n кусков, каждый из которых не более 1000 строк.Разделите набор данных на куски
Вот функция, которую я сейчас использую, чтобы сделать отрывы:
chunkData <- function(Data,chunkSize){
Chunks <- floor(0:(nrow(Data)-1)/(chunkSize))
lapply(unique(Chunks),function(x) Data[Chunks==x,])
}
chunkData(iris,100)
Я хотел бы сделать эту функцию более эффективной, так что он работает быстрее на больших наборах данных.
Почему бы не исправить функцию, которая задыхается на объектах с более чем 1000 строк? –
Да, действительно! Вам просто нужно узнать об управлении памятью или о том, как (не) организовать ваши данные. Также определите «дроссель». Просто потому, что 1000rows (* сколько столбцов?) Заканчивается до того, как вы соскучитесь, не означает, что время обработки сети для 10^5 строк улучшено. –
@CarlWitthoft и Джош: Спасибо за предложения. Я уже немного оптимизировал эту функцию, но это связано с множеством преобразований данных, которые всасывают память, и я не думаю, что этого можно избежать. Я на самом деле решил просто сосать его и «применять» эту функцию по строкам, что занимает много времени, но не исчерпывает память. – Zach