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


R tibble as_tibble 将列表、矩阵等强制转换为 DataFrame


as_tibble() 将现有对象(例如 DataFrame 或矩阵)转换为所谓的 tibble,即具有 tbl_df 类的 DataFrame 。这与 tibble() 形成对比,tibble() 从各个列构建 tibble。 as_tibble() 对应于 tibble() 就像 base::as.data.frame() 对应于 base::data.frame()

as_tibble() 是 S3 泛型,具有以下方法:

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

[Soft-deprecated]

仅出于兼容性目的,请勿用于新代码。

n

计数列的名称,默认值:"n"

column_name

列的名称。

行名称

默认行为是静默删除行名称。

新代码应使用 rownames 参数将行名称显式转换为新列。

对于依赖行名称保留的现有代码,请在脚本或包的 .onLoad() 函数中调用 pkgconfig::set_config("tibble::rownames" = NA)

生命周期

从版本 3.0.0 开始,使用 as_tibble() 作为向量被取代,对于新代码,更喜欢更具表现力的 as_tibble_row()as_tibble_col() 变体。

也可以看看

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/as_tibble.R

相关用法


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