当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R tibble new_tibble Tibble 构造函数和验证器


创建或验证 tibble 的子类。这些函数对于实现 tibble 子类的包作者非常有用,例如顺丰或者蒂布尔.

new_tibble() 创建一个新对象作为 tbl_dftbldata.frame 的子类。该函数针对性能进行了优化,检查次数减少到最少。有关详细信息,请参阅vctrs::new_data_frame()

validate_tibble() 检查 tibble 的内部一致性。仅当该函数运行时不会引发错误,才能保证正确的行为。

用法

new_tibble(x, ..., nrow = NULL, class = NULL, subclass = NULL)

validate_tibble(x)

参数

x

一个tibble-like对象。

...

Name-value 附加属性对。

nrow

行数,如果省略,则从 x 推断。

class

分配给新对象的子类,默认值:无。

subclass

已弃用,为了兼容性而保留。请使用class 参数。

建造

对于 new_tibble()x 必须是列表。从 tibble 3.1.4 开始,nrow 参数可以被省略。如果存在,列表 x 中的每个元素的 vctrs::vec_size() 都应该等于该值。 (但这不是由构造函数检查的)。它取代了数据帧中的 "row.names" 属性。 x 必须有名称(或为空),但不会检查名称的正确性。

验证

validate_tibble() 检查 "minimal" 名称以及所有列是否为向量、数据帧或矩阵。它还确保所有列具有相同的长度,并且 vctrs::vec_size() 与数据一致。

也可以看看

tibble()as_tibble() 用于通过标量回收和自动名称修复来构造 tibble 的方法,以及 vctrs::df_list()vctrs::new_data_frame() 用于 lower-level 实现。

例子

# The nrow argument can be omitted:
new_tibble(list(a = 1:3, b = 4:6))
#> # A tibble: 3 × 2
#>       a     b
#>   <int> <int>
#> 1     1     4
#> 2     2     5
#> 3     3     6

# Existing row.names attributes are ignored:
try(validate_tibble(new_tibble(trees, nrow = 3)))
#> Error in validate_nrow(names(x), col_lengths(x), vec_size(x)) : 
#>   Tibble columns must have compatible sizes.
#> • Size 3: Requested with `nrow` argument.
#> • Size 31: Columns `Girth`, `Height`, and `Volume`.
#> ℹ Only values of size one are recycled.

# The length of all columns must be compatible with the nrow argument:
try(validate_tibble(new_tibble(list(a = 1:3, b = 4:6), nrow = 2)))
#> Error in validate_nrow(names(x), col_lengths(x), vec_size(x)) : 
#>   Tibble columns must have compatible sizes.
#> • Size 2: Requested with `nrow` argument.
#> • Size 3: Columns `a` and `b`.
#> ℹ Only values of size one are recycled.
源代码:R/new.R

相关用法


注:本文由纯净天空筛选整理自Kirill Müller等大神的英文原创作品 Tibble constructor and validator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。