Citat:
Jag är inte så säker på det...
Min tanke just nu, är att man upp till filer på 100 GByte skall använda data.table i R.
Om man har tillräckligt med RAM... Jag har inte det, så jag gjorde ett Proof of Concept i R med endast 5 rader (observationer) indata. Men med väldigt realistisk indata...
Indata, "Allsvenskan.csv":
Utdata, "Allsvenskan_sorted_dt.txt":
Filen är som synes sorterad först med avseende på P(oäng) och sedan på S(pelade matcher).
R-skriptet:
Obs! -P (minus P) för sjunkande.
PS
Stora fördelen med R, jämfört med allt annat (förutom möjligen Excel) är att det är grymt enkelt att utföra explorativ dataanalys. Exempel:
PPS
Eftersom Google och Stack Overflow är i stort sett oanvändbara när man vill ha svar på frågor som: "Vilken teknik skall jag använda för att...?", sökte jag på Hacker News, och fann:
https://news.ycombinator.com/item?id=26451894
PPPS
Vill man själv förbättra prestandan finns källkoden här:
PPPPS
I "vanlig" R kan man göra så här:
Men då går det ~10 gånger långsammare för "stora" filer. En professor på Karolinska jämför lite:
https://www.youtube.com/watch?v=1R5ljPBkVnE
Min tanke just nu, är att man upp till filer på 100 GByte skall använda data.table i R.
Om man har tillräckligt med RAM... Jag har inte det, så jag gjorde ett Proof of Concept i R med endast 5 rader (observationer) indata. Men med väldigt realistisk indata...
Indata, "Allsvenskan.csv":
Kod:
No,Lag, S, V, O, F, M, B, D, P 14,IFK, 17, 9, 3, 5, 25, 25, 0, 30 2,Öis, 17, 11, 2, 4, 42, 19, +23, 35 1,Gais, 16, 12, 3, 1, 39, 11, 28, 39 16,Häcken, 16, 7, 4, 5, 24, 20, +4, 25 3,Malmö, 16, 11, 2, 3, 35, 14, +21, 35
Utdata, "Allsvenskan_sorted_dt.txt":
Kod:
No Lag S V O F M B D P 1 Gais 16 12 3 1 39 11 28 39 3 Malmö 16 11 2 3 35 14 21 35 2 Öis 17 11 2 4 42 19 23 35 14 IFK 17 9 3 5 25 25 0 30 16 Häcken 16 7 4 5 24 20 4 25
Filen är som synes sorterad först med avseende på P(oäng) och sedan på S(pelade matcher).
R-skriptet:
Kod:
library(data.table)
df = fread("./Allsvenskan.csv")
setorder(df, -P, S)
fwrite(df, "./Allsvenskan_sorted_dt.txt", sep="\t")
Obs! -P (minus P) för sjunkande.
PS
Stora fördelen med R, jämfört med allt annat (förutom möjligen Excel) är att det är grymt enkelt att utföra explorativ dataanalys. Exempel:
Kod:
barplot(height=df$P, names.arg=df$Lag)
PPS
Eftersom Google och Stack Overflow är i stort sett oanvändbara när man vill ha svar på frågor som: "Vilken teknik skall jag använda för att...?", sökte jag på Hacker News, och fann:
https://news.ycombinator.com/item?id=26451894
PPPS
Vill man själv förbättra prestandan finns källkoden här:
PPPPS
I "vanlig" R kan man göra så här:
Kod:
df = read.table("./Allsvenskan.csv", header=T, sep=",")
dfs = df[order(-df$P, df$S),]
write.table(dfs, "./Allsvenskan_sorted_df.txt", sep="\t", row.names=F, quote=F)
Men då går det ~10 gånger långsammare för "stora" filer. En professor på Karolinska jämför lite:
https://www.youtube.com/watch?v=1R5ljPBkVnE
Men Jesus Kristus! Jag har testat R, och om du inte kör via Hadoop eller liknande, så är loppet kört. Data Tables i R är väl motsvarigheten till Data Frames i Python? Eller missminner jag mig? R har aldrig fungerat över 1M records i en csv. R är bra för sin uppgift, men inte detta.