3 ms·
Thank you for the correction. I knew that tibbles were essentially just data frames with an extra class attribute, but for some reason I didn't realize this was
by rcthompson 6y ago
Thank you for the correction. I knew that tibbles were essentially just data frames with an extra class attribute, but for some reason I didn't realize this was also true of data.table. I think assumed that data.table's reference semantics couldn't be implemented on top of the existing data frame class, but I guess I'm wrong about that. Unfortunately it's too late for me to edit my original comment.
- kkoncevicius 6y agoTibbles are not just data frames with extra class attribute. For one - they don't have row names. Second, consider this example, demonstrating how treating tibbles as data frames can be dangerous: df_iris <- iris tb_iris <- tibble(iris) nunique <- function(x, colname) length(unique(x[,colname])) nunique(df_iris, "Species") > 3 nunique(tb_iris, "Species") > 1 R-devel mailing list had a long discussion about this too: https://stat.ethz.ch/pipermail/r-package-devel/2017q3/001896.html https://stat.ethz.ch/pipermail/r-package-devel/2017q3/001896...
- rcthompson 6y agoOk, fine, to be more precise, tibbles and data frames and data tables are all implemented as R lists whose elements are vectors which form the columns of the table. And also `is.data.frame` currently returns TRUE for all of them, whether or not that is ultimately correct.