r - unnest_longer 给出美元符号而不是正常的 tibble

标签 r tidyverse tidyr

任何人都可以解释以下区别:

library(tidyverse)

tribble(~id,
    c(1:10))%>%
unnest_longer(id)%>%
mutate(data = map(.x = id, ~mtcars))%>%
unnest_longer(data)

给出:

# A tibble: 320 x 2
   id data$mpg  $cyl $disp   $hp $drat   $wt $qsec   $vs   $am $gear $carb
   <int>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1     1     21       6  160    110  3.9   2.62  16.5     0     1     4     4
2     1     21       6  160    110  3.9   2.88  17.0     0     1     4     4
3     1     22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
4     1     21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
5     1     18.7     8  360    175  3.15  3.44  17.0     0     0     3     2

鉴于

library(tidyverse)

tribble(~id,
    c(1:10))%>%
unnest_longer(id)%>%
mutate(data = map(.x = id, ~mtcars))%>%
unnest(data)

给出了我想要的结果。

      # A tibble: 320 x 12
       id   mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
     <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1     1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
 2     1  21       6  160    110  3.9   2.88  17.0     0     1     4     4
 3     1  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
 4     1  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
 5     1  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2

为什么第一个代码示例中有 $-Signs? 提前致谢!

最佳答案

这是 {tibble} 版本 2.0.1 中引入的功能 - docs .

要获得与 tidyr::unnest() 相同的结果,您需要添加 tidyr::unpack()

tribble(
  ~id,
  c(1:10)
) %>%
  tidyr::unnest_longer(id) %>%
  dplyr::mutate(data = purrr::map(
    .x = id,
    ~ mtcars
  )) %>%
  tidyr::unnest_longer(data) %>% 
  tidyr::unpack(cols = data)

关于r - unnest_longer 给出美元符号而不是正常的 tibble,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62328384/

相关文章:

r - fortify()之后如何从shapefile中保留信息

r - 根据多种条件填充单元格数据框

r - 使用 tidyverse : speed issues 编程

r - 在 tidyr::gather 中使用多个键

r - 使用 dplyr 聚合不在组中的值

r - 使用rvest抓取时没有数据

r - 树形图中的颜色

r - 如何在 tidyverse 中将缺失的数据行添加为 NA

r - tidyr 将具有字符和数值的列拆分为 R 中的两个单独的列

regex - tidyr 提取正则表达式