Etwas wirklich merkwürdiges geht hier vor sich. Im folgenden Code erstelle ich eine Variable namens temp
. Ich muss es zweimal anrufen, bevor ich sehen kann, was es ist. Z.B. Das erste Mal, wenn ich es nenne, zeigt die Konsole nichts. Das zweite Mal zeigt es die data.table
/data.frame
, dass es ist. Kann mir jemand helfen zu verstehen, was hier vor sich geht?Müssen Variablen vor der Auswertung zweimal aufgerufen werden?
library(magrittr)
library(data.table)
myDT <- as.data.table(mtcars)
temp <-
myDT %>%
melt(id.vars = c('cyl', 'mpg', 'hp'),
measure.vars = c('vs','am','gear','carb'),
variable.name = 'Data') %>%
extract(value > 0) %>%
extract(, value := NULL)
Was meine Konsole (der erste Anruf nicht alles tun) tut:
> temp
> temp
cyl mpg hp Data
1: 4 22.8 93 vs
2: 6 21.4 110 vs
3: 6 18.1 105 vs
4: 4 24.4 62 vs
5: 4 22.8 95 vs
...
...
ich dies zu sehen, in RStudio und Rterm (R Version 3.2.2 (2015.08.14); Plattform: x86_64-w64-mingw32/x64 (64- Bit); data.table_1.9.6). 'print.data.frame (temp)' funktioniert zuerst. – jbaums
Ich habe das immer bemerkt nach einem ': =' oder 'set()' Aufruf in 'data.table' – tospig
Ich bin sicher, ich habe gesehen, dass dies zuvor als ein bekanntes Verhalten mit data.table kommen. Es gibt irgendwo ein Duplikat auf SO, wahrscheinlich wird einer der data.table-Gurus wissen, wo es ist. – joran