我主要使用tidyverse
中的tibble格式来制作表格,但有些步骤我会使用data.table
包。我想知道将data.table转换回tibble的最佳方法是什么?
我知道data.table
有一些聪明的函数setDT和setDF 函数,它们通过引用(即不复制)将data.frame转换为data.table(反之亦然)。
但如果我想将其转换回tibble该怎么办?我是否应该在setDT()
生成的data.frame上使用as_tibble
来复制数据?是否有聪明的方法可以利用data.table
中的setattr()
来完成这项工作?
library(data.table)
library(tidyverse)
iris_tib <- as_tibble(iris)
## some data.table operation
setDT(iris_tib)
setkey(iris_tib, Species)
iris_tib[, Sepal.Length.Mean := mean(Sepal.Length), by = Species]
## How to convert back to tibble efficiently?
setDF(iris_tib)
iris_tib_back <- as_tibble(iris_tib)
## it looks like we were able to update by reference? Only rownames were (shallow) copied?
changes(iris_tib, iris_tib_back)
as_tibble()
函数对行名称的处理方式。但我想,如果我不太关心行名,那应该没问题。 - Matifou