Ich habe eine Datentabelle „d“ und ich bin zur Zeit wie folgt subsetting:schneller subsetting von data.table
d[d$time >= as.POSIXct("2016-01-01 00:31:13",tz="GMT") & d$category =="b" & num1==8 & num2>=4 & num3 ==7, ]
Was ist der schnellste Weg, um die Zeilen einer Datentabelle der Teilmenge? Kann das schneller gemacht werden?
Vielen Dank.
Hier ist der Code:
times= as.POSIXct("2016-01-01",tz="GMT")+seq(1,2000,by = 1)
d =data.table(time= times, category1 = rep(c("a","b"),1000), num1=rep(c(2,8),1000), num2=rep(c(3,4),1000), num3=rep(c(5,7),1000))
setkey(d,time)#
d[d$time >= as.POSIXct("2016-01-01 00:31:13",tz="GMT") & d$category =="b" & num1==8 & num2>=4 & num3 ==7, ]
Ich habe die $ los und es war immer noch die gleiche Zeit – user3022875
Warum sind Sie subsetting es? Nur um das Ergebnis zu sehen? – Frank
@David was meinst du "du brauchst nicht alle diese Anrufe". Ich muss auf diese Spalten unterteilen. Lassen Sie uns über $ vergessen, weil das die Leistung nicht verbessert. Ich verwende system.time, um die Geschwindigkeit zu testen. – user3022875