什么" tbl"在R中代表(例如在dplyr包中)?

时间:2015-07-27 09:11:59

标签: r dplyr

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

我到处寻找tbl的解释但无法找到有用的内容。

我怀疑这个术语不仅仅在dplyr包中使用,但万一我会告诉您在使用dplyr时碰到它。

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

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

3 个答案:

答案 0 :(得分:2)

tbl = table

在plplyr中有几种类型的表:

加入==>加入两个tbls。

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

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

join.tbl_sql ==>加入 sql tbls。

答案 1 :(得分:1)

实际上很难找到有关此主题的信息。 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函数(联接,选择,突变等)将返回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继承自import { Injectable } from '@angular/core'; import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { Observable, of } from 'rxjs'; import { map, catchError } from 'rxjs/operators'; import { ProductResolved } from './product'; import { ProductService } from './product.service'; @Injectable({ providedIn: 'root' }) export class ProductResolver implements Resolve<ProductResolved> { constructor(private productService: ProductService) { } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<ProductResolved> { const id = route.paramMap.get('id'); if (isNaN(+id)) { const message = `Product id was not a number: ${id}`; console.error(message); return of({ product: null, error: message }); } return this.productService.getProduct(+id) .pipe( map(product => ({ product: product })), catchError(error => { const message = `Retrieval error: ${error}`; console.error(message); return of({ product: null, error: message }); }) ); } }

答案 2 :(得分:1)

我认为这是tibble

  

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