as_tibble()
將現有對象(例如 DataFrame 或矩陣)轉換為所謂的 tibble,即具有 tbl_df
類的 DataFrame 。這與 tibble()
形成對比,tibble()
從各個列構建 tibble。 as_tibble()
對應於 tibble()
就像 base::as.data.frame()
對應於 base::data.frame()
。
as_tibble()
是 S3 泛型,具有以下方法:
-
data.frame
:圍繞list
方法的薄包裝器,該方法實現 tibble 對 rownames 的處理。 -
默認:其他輸入首先使用
base::as.data.frame()
進行強製。
as_tibble_row()
將向量轉換為一行的 tibble。如果輸入是列表,則所有元素的大小都必須為 1。
as_tibble_col()
將向量轉換為一列的 tibble。
用法
as_tibble(
x,
...,
.rows = NULL,
.name_repair = c("check_unique", "unique", "universal", "minimal"),
rownames = pkgconfig::get_config("tibble::rownames", NULL)
)
# S3 method for data.frame
as_tibble(
x,
validate = NULL,
...,
.rows = NULL,
.name_repair = c("check_unique", "unique", "universal", "minimal"),
rownames = pkgconfig::get_config("tibble::rownames", NULL)
)
# S3 method for list
as_tibble(
x,
validate = NULL,
...,
.rows = NULL,
.name_repair = c("check_unique", "unique", "universal", "minimal")
)
# S3 method for matrix
as_tibble(x, ..., validate = NULL, .name_repair = NULL)
# S3 method for table
as_tibble(x, `_n` = "n", ..., n = `_n`, .name_repair = "check_unique")
# S3 method for NULL
as_tibble(x, ...)
# S3 method for default
as_tibble(x, ...)
as_tibble_row(
x,
.name_repair = c("check_unique", "unique", "universal", "minimal")
)
as_tibble_col(x, column_name = "value")
參數
- x
-
可以合理地強製為 tibble 的 DataFrame 、列表、矩陣或其他對象。
- ...
-
未使用,用於擴展。
- .rows
-
行數,可用於創建 0 列 tibble 或僅作為附加檢查。
- .name_repair
-
有問題的列名的處理:
-
"minimal"
:沒有名稱修複或檢查,超出基本存在, -
"unique"
:確保名稱唯一且不為空, -
"check_unique"
:(默認值),沒有名稱修複,但檢查它們是unique
, -
"universal"
:命名為unique
和語法 -
函數:應用自定義名稱修複(例如,
.name_repair = make.names
用於基本 R 樣式的名稱)。 -
purrr-style 匿名函數,請參閱
rlang::as_function()
此參數作為
repair
傳遞到vctrs::vec_as_names()
。有關這些條款以及用於執行這些條款的策略的更多詳細信息,請參閱此處。 -
- rownames
-
如何處理 DataFrame 或矩陣的現有行名稱:
-
NULL
:刪除行名稱。這是默認設置。 -
NA
:保留行名稱。 -
字符串:新列的名稱。現有行名將傳輸到此列中,並且
row.names
屬性將被刪除。即使x
已包含該名稱的列,也不會對新列名稱應用名稱修複。使用as_tibble(rownames_to_column(...))
來防範這種情況。
閱讀rownames了解更多內容。
-
- _n, validate
-
僅出於兼容性目的,請勿用於新代碼。
- n
-
計數列的名稱,默認值:
"n"
。 - column_name
-
列的名稱。
行名稱
默認行為是靜默刪除行名稱。
新代碼應使用 rownames
參數將行名稱顯式轉換為新列。
對於依賴行名稱保留的現有代碼,請在腳本或包的 .onLoad()
函數中調用 pkgconfig::set_config("tibble::rownames" = NA)
。
也可以看看
tibble()
從各個列構造一個 tibble。 enframe()
將命名向量轉換為包含一列名稱和一列值的 tibble。名稱修複是使用 vctrs::vec_as_names()
實現的。
例子
m <- matrix(rnorm(50), ncol = 5)
colnames(m) <- c("a", "b", "c", "d", "e")
df <- as_tibble(m)
as_tibble_row(c(a = 1, b = 2))
#> # A tibble: 1 × 2
#> a b
#> <dbl> <dbl>
#> 1 1 2
as_tibble_row(list(c = "three", d = list(4:5)))
#> # A tibble: 1 × 2
#> c d
#> <chr> <list>
#> 1 three <int [2]>
as_tibble_row(1:3, .name_repair = "unique")
#> New names:
#> • `` -> `...1`
#> • `` -> `...2`
#> • `` -> `...3`
#> # A tibble: 1 × 3
#> ...1 ...2 ...3
#> <int> <int> <int>
#> 1 1 2 3
as_tibble_col(1:3)
#> # A tibble: 3 × 1
#> value
#> <int>
#> 1 1
#> 2 2
#> 3 3
as_tibble_col(
list(c = "three", d = list(4:5)),
column_name = "data"
)
#> # A tibble: 2 × 1
#> data
#> <named list>
#> 1 <chr [1]>
#> 2 <list [1]>
相關用法
- R tibble add_row 將行添加到 DataFrame
- R tibble add_column 將列添加到 DataFrame
- R tibble tibble 構建 DataFrame 架
- R tibble char 設置字符向量格式
- R tibble frame_matrix 逐行矩陣創建
- R tibble num 設置數值向量的格式
- R tibble rownames 用於處理行名稱的工具
- R tibble enframe 將向量轉換為數據幀,反之亦然
- R tibble subsetting 子集化標題
- R tibble tibble_options 封裝選項
- R tibble lst 建立一個清單
- R tibble formatting 打印小標題
- R tibble new_tibble Tibble 構造函數和驗證器
- R tibble tribble 逐行小標題創建
- R tidyr separate_rows 將折疊的列分成多行
- R tidyr extract 使用正則表達式組將字符列提取為多列
- R tidyr chop 砍伐和砍伐
- R tidyr pivot_longer_spec 使用規範將數據從寬轉為長
- R tidyr unnest_longer 將列表列取消嵌套到行中
- R tidyr uncount “計數” DataFrame
- R tidyr cms_patient_experience 來自醫療保險和醫療補助服務中心的數據
- R tidyr pivot_wider_spec 使用規範將數據從長軸轉向寬軸
- R tidyverse tidyverse_update 更新 tidyverse 軟件包
- R tidyr replace_na 將 NA 替換為指定值
- R tidyr unnest_wider 將列表列取消嵌套到列中
注:本文由純淨天空篩選整理自Kirill Müller等大神的英文原創作品 Coerce lists, matrices, and more to data frames。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。