【问题标题】:What does "tbl" stand for in R (for example in dplyr package)?“tbl”在 R 中代表什么(例如在 dplyr 包中)?
【发布时间】:2015-10-17 09:41:09
【问题描述】:

dplyr 包中,他们谈论tbl,如何加入他们等等。

我到处寻找tbl 的解释,但找不到任何有用的东西。

我怀疑它不仅是在 dplyr 包中使用的术语,但以防万一我会让您知道在使用 dplyr 时碰到它。

我不知道这是什么意思,所以我的问题是:

tbl 代表什么(在 dplyr 包中或一般情况下)?

【问题讨论】:

  • 我花了 10 分钟试图找到有用的示例,最后发现我需要在表名周围加上引号才能从数据库中返回表数据 --> tbl(con,"tableName")。文档在过去几年没有改进。

标签: r dplyr


【解决方案1】:

tbl = 表格

在 dlplyr 中有几种类型的表:

join ==> 将两个 tbl 连接在一起。

join.tbl_df ==> 加入 数据框 tbls。

join.tbl_dt ==> 加入 数据表 tbls。

join.tbl_sql ==> 加入 sql tbls。

【讨论】:

    【解决方案2】:

    实际上很难找到有关此主题的信息。 tbl/is.tbl 的文档提供的信息很少。

    据我所知,tbl 是 dplyr 函数作为数据参数接收的表格数据的通用类。

    创建 tbl 会将“tbl_”添加到类名中。来自dplyr/tbl.r

    #' Create a "tbl" object
    #'
    #' `tbl()` is the standard constructor for tbls. `as.tbl()` coerces,
    #' and `is.tbl()` tests.
    #'
    #' @keywords internal
    #' @export
    #' @param subclass name of subclass. "tbl" is an abstract base class, so you
    #'   must supply this value. `tbl_` is automatically prepended to the
    #'   class name
    #' @param object to test/coerce.
    #' @param ... For `tbl()`, other fields used by class. For `as.tbl()`,
    #'   other arguments passed to methods.
    #' @examples
    #' as.tbl(mtcars)
    make_tbl <- function(subclass, ...) {
      subclass <- paste0("tbl_", subclass)
      structure(list(...), class = c(subclass, "tbl"))
    

    在 data.frame 上使用任何 dplyr 函数(join、select、mutate 等)都会返回一个 data.frame。

    library(dplyr)
    select(mtcars, cyl) %>% class
    

    但是,在 tbl_df/tibble 上调用 dplyr 函数(请参阅 my answer on tibble vs tbl_df)会返回 tbl_df/tibble。

    > select(tbl_df(mtcars), cyl) %>% class
    [1] "tbl_df"     "tbl"        "data.frame"
    

    这里我们看到tbl_df继承自tbl,后者继承自data.frame

    【讨论】:

      【解决方案3】:

      我认为是tibble

      tbl_df 类是 data.frame 的子类,创建它是为了具有不同的默认行为。口语“tibble”是指具有 tbl_df 类的数据框。 Tibble 是一组称为 tidyverse 的包的中心数据结构,包括 dplyr、ggplot2、tidyr 和 readr。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-27
        • 2018-12-15
        • 2012-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多