使用时 dplyr , tbl_df
函数打印一条语句,说明数据框是“本地的”:
> mtcars %>%
+ group_by(gear)
Source: local data frame [32 x 11]
Groups: gear
mpg cyl ...
1 21.0 6 ...
我认为本地数据框意味着在内存中,而非本地数据框是像 SQL 这样的数据库。不过,我认为我的假设是错误的。在此 tutorial video大约在 25:25,Kevin Markham 说
data.frame
对象不是本地数据框,我相信它们是。我翻阅了
tbl_df
文档并在 dplyr introduction vignette 中使用了搜索功能,但找不到本地数据框的描述。问题: 什么是本地数据框?
最佳答案
我是 video tutorial 的作者问题中提到。以下是与本次讨论相关的功能摘要:
data.frame()
是R创建的函数普通 数据帧。 data_frame()
是 dplyr 的创建函数 本地 数据帧。 tbl_df()
和 as_data_frame()
是 dplyr 用于转换 的函数普通 数据框(或列表)转换为 本地 数据框。 那么, 和有什么区别?普通 和 本地 数据框?很少。一个 本地 数据框只是一个 普通 已用
tbl_df
包裹的数据框类以获得更好的打印效果。 (数据仍然存储在 常规 “幕后”数据帧中。)具体来说,打印 本地 数据框仅显示前 10 行,以及屏幕上可以容纳的尽可能多的列。 (您可以在我的 RMarkdown document 的 first dplyr video tutorial 顶部看到此行为的示例,该示例位于上面链接的教程之前)。
所有 dplyr 函数都返回 本地 默认情况下数据框,但您可以将其转换回 普通 使用
data.frame()
的数据框功能。这样做的一个原因是,如果您更喜欢 普通 数据框打印,即您想要查看更多行或更多列。但是, dplyr 允许您无需转换即可执行此操作:library(dplyr)
library(nycflights13)
# print a local data frame (10 rows, variable number of columns)
flights
# print 15 rows
print(flights, n = 15)
# print all rows (don't run this, since it has 336,776 rows)
print(flights, n = Inf)
# print all columns
print(flights, width = Inf)
dplyr 有一个 vignette关于提供更多技术细节的数据框。
关于r - 来自 "local data frame"的 `dplyr:::print.tbl_df` 消息是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29084380/