使用 dplyr::tibble 复制 base::data.frame 行为

Replicate base::data.frame behavior with dplyr::tibble

我想根据在环境中找到的对象创建一个名称向量,并将该向量放在 tibble 中。当您使用 base::data.frame() 时,它会起作用,如下所示:

library(tidyverse)

# three objects in the environment

str_c("x", 1:3) %>% 
  map(
    ~assign(., "", envir = .GlobalEnv)
  )

data.frame(
  v1 = ls()
  )

这个returns

  v1
1 x1
2 x2
3 x3

但如果我尝试使用 dplyr::tibble(),我会得到

tibble(
  v1 = ls()
)

# A tibble: 1 x 1
  v1   
  <chr>
1 ~    

如何让 tibble 复制 data.frame 行为?

使用 tibble 中的 enframe,已更新以删除多余的名称向量:

library(tidyverse)

# three objects in the environment

str_c("x", 1:3) %>% 
  map(
    ~assign(., "", envir = .GlobalEnv)
  )
#> [[1]]
#> [1] ""
#> 
#> [[2]]
#> [1] ""
#> 
#> [[3]]
#> [1] ""

enframe(ls(), value = "v1", name = NULL)
#> # A tibble: 3 x 1
#>   v1   
#>   <chr>
#> 1 x1   
#> 2 x2   
#> 3 x3

reprex package (v2.0.0)

于 2021-05-06 创建