r - Display row names in a data.table object -
reference: while trying answer this basic question, realized wasn't able display rownames
in data.table
object
toy example
library(data.table) dt <- data.table(a = letters[1:3]) dt ## ## 1: ## 2: b ## 3: c row.names(dt) <- 4:6 row.names(dt) ## [1] "4" "5" "6" # seem work
or
rownames(dt) <- 7:9 rownames(dt) ## [1] "7" "8" "9" # seems ok
but when displaying data itself, row names remains unchanged
dt ## ## 1: ## 2: b ## 3: c
i assume data.table
ignores unnecessary attributes efficiency purposes, attributes
seem disagree
attributes(dt) # $names # [1] "a" # # $row.names # [1] 7 8 9 # # $class # [1] "data.table" "data.frame" # # $.internal.selfref # <pointer: 0x0000000000200788>
this more or less verbatim comments.
data.table
doesn't support row names. intentional, row names bad design choice, because far more cumbersome use columns (and in data.table
, columns easier deal in data.frame
) , subset of kind of data columns can represent (recall row names in data.frame
character vector only, whereas columns can anything).
Comments
Post a Comment