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

Popular posts from this blog

android - Why am I getting the message 'Youractivity.java is not an activity subclass or alias' -

python - How do I create a list index that loops through integers in another list -

c# - “System.Security.Cryptography.CryptographicException: Keyset does not exist” when reading private key from remote machine -