Reference: While trying to answer this very basic question, I suddenly realized that I wasn't able to display rownames
in a data.table
object
Toy example
library(data.table)
DT <- data.table(A = letters[1:3])
DT
## A
## 1: a
## 2: b
## 3: c
row.names(DT) <- 4:6
row.names(DT)
## [1] "4" "5" "6" # seem to work
or
rownames(DT) <- 7:9
rownames(DT)
## [1] "7" "8" "9" # seems to be ok too
But when displaying the data itself, row names remains unchanged
DT
## A
## 1: a
## 2: b
## 3: c
I would assume data.table
ignores unnecessary attributes for efficiency purposes, but attributes
seem to disagree
attributes(DT)
# $names
# [1] "A"
#
# $row.names
# [1] 7 8 9
#
# $class
# [1] "data.table" "data.frame"
#
# $.internal.selfref
# <pointer: 0x0000000000200788>
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…