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 Antwort

Ich 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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage