У меня есть df, YearHT, 6.5M x 55 столбцов. Существует определенная информация, которую я хочу извлечь и добавить, но только на основе совокупных значений. Я использую цикл for для подмножества большого df, а затем выполнения вычислений.альтернатива подмножеству в R
Я слышал, что для циклов следует избегать, и мне интересно, есть ли способ избежать цикла for, который я использовал, поскольку, когда я запускаю этот запрос, он занимает ~ 3 часа.
Вот мой код:
srt=NULL
for(i in doubletCounts$Var1){
s=subset(YearHT,YearHT$berthlet==i)
e=unlist(c(strsplit(i,'\\|'),median(s$berthtime)))
srt=rbind(srt,e)
}
srt=data.frame(srt)
s2=data.frame(srt$X2,srt$X1,srt$X3)
colnames(s2)=colnames(srt)
s=rbind(srt,s2)
doubletCounts составляет 700 х 3 ДФ, и каждое из значений находится в пределах большого ФР.
Я был бы рад услышать любые идеи по оптимизации/ускорению этого процесса.
Не могли бы вы предоставить небольшой образец вашего набора данных, чтобы мы могли проверить код? Вы можете получить образец с помощью 'dput()' (убедитесь, что вы выбрали только первые 10 или около того) – Bas
Поскольку вы работаете с очень большим набором данных, почему бы не попробовать 'data.table'? Это намного быстрее, чем кадры данных. –