Dorota
Jałocha
Korepetycje z
matematyki
Temat: pętla w data.table
cześć,mam gruby problem. używam data.table bo jak wiadomo szybciej działa. jednak jesdej petli nie potrafie przepisać
by działa w miare sprawnie
VisitSources <- as.vector(DF$PVsource)
for (i in 2:nrow(DF)) {
if(DF[i,visitID]==DF[i-1,visitID]) {
VisitSources[i]=VisitSources[i-1]
}
}
DF=cbind(DF,VisitSources)
operacje typu
DF][,channel := as.character(channel)][VisitSources=="fb", channel := "Organic"]
działa mega szybko i tym sposobem obeszłam wiekszosc rzeczy ale ta jedna powyzsza petla sprawia, że na kilku milionach rekordow kod kreci sie kilka godzin (na maksa z optymalizowałam zawalony RAM).
Czy kto moglby mi podpowiedziec jak usprawnic dzialanie tej petli ? bede bardzo wdzieczna.
p.s.
polecicie pakiet do R ktory nie ładuje do RAM, działa całkiem szybko jak data.table, pracuje nie tylko na numericach jak bigmatrix (cos tam type="char" szwankuje) i pozwala wykonywac swobodne operacje na wierszach jak wlasnie powyzsza ze wyluskuje tylko czesc wierszy ktore mnie interesuja?
nie mam co prawda dużego doświadczenia ale ff i filehash mi stoi okoniem pod no i wolno działają też..
pozdrawiam,
dorota