首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tibble和dataframe,函数

tibble和dataframe,函数
EN

Stack Overflow用户
提问于 2020-10-16 21:38:02
回答 1查看 145关注 0票数 0
代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-17 01:11:15

我认为您的一些困惑是关于tibbles和data.frames之间的区别。Tibble是data.frame的一个特殊类。Tibble向data.frames添加了增强的功能,比如通过在打印时提供每列中的数据类型来改进打印。Tibble还默认只打印前十行,并根据输出控制台的宽度进行一些调整。

比较打印mtcarstibble(mtcars)时控制台中发生的情况。

另一个不同之处在于,当你要求它们做一些事情时,它们会更严格,比如子集。比较一下当您向mtcars请求一个不存在的列时会发生什么。

代码语言:javascript
复制
# 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_tibbledplyr::as_tibbletidyr::as_tibble都是相同的函数。该函数来自tibble包,但它已导出为dplyrtidyr,因此您可以在这些包中使用它,而无需加载tibble

dplyr中的tbl_df()函数是一个遗留函数,dplyr可以使用它将所有内容转换为小块。tbl_df()的文档页面指出,此函数已被as_tibble()取代。您应该使用as_tibble(),但tbl_df()仍然保留在包中,以实现反向兼容性。

as_data_frame()函数是一个不推荐使用的函数,用于按列构造已被as_tibble()取代的tibbles。我正在使用tibble v 3.0.3dplyr v 1.0.1,但我被阻止尝试使用as_data_frame(),并显示一条警告消息,以改为使用as_tibble()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64390314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档