我想创建一个存储其他任意 tibble 的 tibble 列。
我设法使用以下代码来做到这一点,首先在每个内部 tibble 上使用nest()
,然后在外部 tibble 上使用unnest()
library(tibble)
library(tidyr)
df_outer <- tribble(
~x, ~y,
1, 2,
4, 6,
5, 7
)
df_nested <- tribble(
~a, ~b,
1, 2,
4, 6
)
df_outer[["data"]][1] <- nest(df_nested) # Insert first tibble
df_outer[["data"]][2] <- nest(as_tibble(2*df_nested)) # Insert arbitrary other tibbles
df_outer[["data"]][3] <- nest(as_tibble(3*df_nested))
df_outer <- df_outer %>% unnest()
虽然这种方法有效,但我觉得这是错误的方法,因为我需要就结果调用unnest()
。有没有更清洁的方法来实现这一点?请注意,我想一次插入一个内部 tibbles。
我们可以使用map
创建一个新列
library(dplyr)
library(purrr)
df_outer %>%
mutate(data = map(row_number(), ~ .x * df_nested))