mat_iris <- as.matrix(iris)
tidyr::as_tibble(mat_iris)
tibble::as_tibble(mat_iris)
tidyr background work tibble ?
dplyr::tbl_df(mat_iris)
dplyr::as_data_frame(mat_iris)两个有什么不同?
https://www.rdocumentation.org/packages/dplyr/versions/0.5.0/topics/tbl_df https://www.rdocumentation.org/packages/tibble/versions/1.0/topics/as_data_frame
发布于 2020-10-17 01:11:15
我认为您的一些困惑是关于tibbles和data.frames之间的区别。Tibble是data.frame的一个特殊类。Tibble向data.frames添加了增强的功能,比如通过在打印时提供每列中的数据类型来改进打印。Tibble还默认只打印前十行,并根据输出控制台的宽度进行一些调整。
比较打印mtcars和tibble(mtcars)时控制台中发生的情况。
另一个不同之处在于,当你要求它们做一些事情时,它们会更严格,比如子集。比较一下当您向mtcars请求一个不存在的列时会发生什么。
# data.frame
mtcars$bounce
NULL
# tibble
tibble(mtcars)$bounce
NULL
Warning message:
Unknown or uninitialised column: `bounce`. tibble友好地通知您,您所要求的东西并不存在。
最后一个区别是,data.frames可以包含列,其中条目不是值,而是向量、列表和其他tibble。
在this blog entry上阅读有关差异的更多信息。
至于具体的功能:as_tibble()将一些东西转换成tibble。函数tibble::as_tibble、dplyr::as_tibble和tidyr::as_tibble都是相同的函数。该函数来自tibble包,但它已导出为dplyr和tidyr,因此您可以在这些包中使用它,而无需加载tibble。
dplyr中的tbl_df()函数是一个遗留函数,dplyr可以使用它将所有内容转换为小块。tbl_df()的文档页面指出,此函数已被as_tibble()取代。您应该使用as_tibble(),但tbl_df()仍然保留在包中,以实现反向兼容性。
as_data_frame()函数是一个不推荐使用的函数,用于按列构造已被as_tibble()取代的tibbles。我正在使用tibble v 3.0.3和dplyr v 1.0.1,但我被阻止尝试使用as_data_frame(),并显示一条警告消息,以改为使用as_tibble()。
https://stackoverflow.com/questions/64390314
复制相似问题