Qui sta succedendo qualcosa di davvero strano. Nel codice qui sotto, creo una variabile denominata temp
. Devo chiamarlo due volte prima di poter vedere di cosa si tratta. Per esempio. La prima volta che lo chiamo, la console non mostra nulla. La seconda volta mostra lo data.table
/data.frame
che è. Qualcuno può aiutarmi a capire cosa sta succedendo qui?Devo chiamare la variabile due volte prima di valutare?
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)
Che la mia console sta facendo (la prima chiamata non fa nulla):
> 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
...
...
Vedo anche questo, in RStudio e Rterm (R versione 3.2.2 (2015/08/14); Piattaforma: x86_64-W64-mingw32/x64 (64- bit); data.table_1.9.6). 'print.data.frame (temp)' funziona prima di tutto. – jbaums
Ho sempre notato questo dopo una chiamata ': =' o 'set()' in 'data.table' – tospig
Sono certo di averlo visto prima come un comportamento noto con data.table. C'è un duplicato su SO da qualche parte, probabilmente uno dei guru data.table saprà dove si trova. – joran