r - 来自 "local data frame"的 `dplyr:::print.tbl_df` 消息是什么意思?

标签 r printing dplyr

使用时 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 documentfirst 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/

    相关文章:

    r - 使用列名称为列内容添加前缀/后缀

    r - 在 R 中与 dplyr 连接时嵌套重复变量

    r - 不断扫描 R 工作目录中的新文件

    r - 如何从函数返回具有给定名称的 data.frame?

    r - 对角线矩阵为1的矩阵

    html - 给出固定元素和表格元素之间的距离 - 打印模式

    r - r,不等于,不包含nas

    R:它能走多远? (加上通风)

    css - Mozilla 在报告的第二页打印表格

    c# - 打印 RichTextBox