R 在库中存储库

R 在库中存储库,r,tidyr,R,Tidyr,我想创建一个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[["

我想创建一个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()
库(TIBLE)
图书馆(tidyr)

df_outer我们可以使用
map
创建一个新列

library(dplyr)
library(purrr)
df_outer %>%
      mutate(data =  map(row_number(), ~ .x * df_nested))

对不起,应该是
df_outer
。你能检查一下我在下面发布的解决方案吗。在您的解决方案中,您可能需要两次
unest
,因为它是一个嵌套列表,但在我的解决方案中,只有一次需要您的响应。这将创建与上面相同的data.frame。然而,在我试图编写的代码中,我并不是一次就拥有所有可用的tibble,因为我是从数据库接收它们的。唯一干净的解决方案是将它们放在列表中累积,然后使用
mutate
将它们插入外部TIBLE吗?或者是否可以一次直接将其插入外部TIBLE中?@MattSteadman如果是这种情况,请在收到数据后立即更新
for
循环中的
列表。我不清楚在你的情况下整个infra是如何运作的