當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。