使用 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 创建
我想根据在环境中找到的对象创建一个名称向量,并将该向量放在 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 创建