追加迭代映射函数的输出

Append output from iterative mapped function

这是对上一个问题的 follow-up:

映射函数的输出...

data %>% 
  bind_cols(
    map(.x = models,.f = text_model) %>% 
      set_names(models) %>% 
      bind_rows(.id = "model") 
  )

...生成一个数据框,其中每个函数的结果写入单独的列(函数包含在列 headers 中)。

但是,最好附加每个函数的输出,这样所有结果都包含在同一列中,并用单独的列来跟踪哪个函数(“model001”、“model002”、.. “model500”) 生成了结果。

如何调整上一个问题 () 的代码以这种方式写入结果?

编辑:有人建议 作为答案,但是这个 post 是对那个询问如何将输出写入单个列(而不是每个功能单独一列)。

给出另一个答案,我们可以旋转数据

data %>% 
  bind_cols(
    map(.x = models,.f = text_model) %>% 
      set_names(models_names) %>% 
      bind_rows(.id = "model") 
  ) %>% 
  pivot_longer(cols = model1:model2,names_to = "model")

# A tibble: 200 x 6
       A       B      C       D model  value
   <dbl>   <dbl>  <dbl>   <dbl> <chr>  <dbl>
 1 0.833  0.538   0.647  1.65   model1  22.9
 2 0.833  0.538   0.647  1.65   model2  57.9
 3 2.07   1.20   -0.748 -2.04   model1  35.3
 4 2.07   1.20   -0.748 -2.04   model2  70.3
 5 0.880 -0.199   1.08   1.04   model1  29.2
 6 0.880 -0.199   1.08   1.04   model2  64.2
 7 0.252  0.400   1.45  -0.0645 model1  15.6
 8 0.252  0.400   1.45  -0.0645 model2  50.6
 9 0.746  0.0943 -1.00   1.44   model1  20.4
10 0.746  0.0943 -1.00   1.44   model2  55.4
# ... with 190 more rows