Beschleunigen Sie diese Schleife, um Dummy-Spalten mit data.table zu erstellen und in R [duplicate] @ festzulege
Diese Frage hat hier bereits eine Antwort:
Dummy-Variablen in R data.table erstellen 1 AntwortIch habe eine Datentabelle und möchte für jeden einzelnen Tag eine neue Spalte erstellen und dann in jeder Zeile, in der der Tag mit dem Spaltennamen übereinstimmt, eine 1 zuweisen.
Ich habe dies mit einer for-Schleife durchgeführt, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, diese mithilfe von data.table und set zu optimiere
Hier ist ein Beispie
dt <- data.table(Week_Day = c("Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"))
Day <- unique(dt$Week_Day)
for (i in 1:length(Day)) {
if (Day[i] != "Sunday") {
dt[, Day[i] := ifelse(Week_Day == Day[i], 1, 0)]
}
}
my table hat 298k Zeilen und obwohl die Ausführung (unten) nicht lange dauert, ist dies Teil eines langen Skripts, und ich habe einige ineffiziente Schleifen, so dass ich versuche, die Gesamtlaufzeit zu verkürzen.
Zeit zu rennen
user system elapsed
0.99 0.06 1.05
Danke im Voraus