Предоставление имен тибли в purrr

Alex спросил: 28 марта 2018 в 04:03 в: r

Я хотел бы знать, можно ли указать имена столбцов в функции as_tibble. Я знаю, что для изменения имен столбцов я мог бы использовать функцию rename, но мне хотелось бы сохранить количество строк, которые я пишу. Допустим, я хочу, чтобы мои имена столбцов были a1, a2, a3.

> library(purrr)
> library(tidyverse)
> 1:3 %>%
+     map(~ rnorm(104, .x)) %>% 
+     map_dfc(~as_tibble(.x))
# A tibble: 104 x 3
         value      value1   value2
         <dbl>       <dbl>    <dbl>
 1  2.91139409  1.44646163 1.298360
 2  0.87725704  4.05341889 3.892296
 3  0.73230088  2.72506579 3.520865
 4  1.02862344  2.09576397 4.009980
 5  0.49159059 -1.23746772 3.172201
 6  0.24665840  1.80876495 2.927716
 7  0.75112051  2.22486452 2.896452
 8 -0.06036349  3.63503054 3.218324
 9  1.84431314  1.88562406 2.398761
10  0.70866474  0.08947359 3.954770
# ... with 94 more rows

1 ответ

www ответил: 28 марта 2018 в 05:39

Мы можем поставить as_tibble с помощью map_dfc, а затем использовать setNames(paste0("a", seq_len(ncol(.)))) для изменения имени столбца в зависимости от количества столбцов.

library(tidyverse)set.seed(123)1:3 %>%
  map_dfc(~as_tibble(rnorm(104, .x))) %>% 
  setNames(paste0("a", seq_len(ncol(.))))# A tibble: 104 x 3
        a1    a2    a3
     <dbl> <dbl> <dbl>
  1  0.440 1.05   4.65
  2  0.770 1.95   2.95
  3  2.56  1.22   3.12
  4  1.07  0.332  3.24
  5  1.13  1.62   4.23
  6  2.72  2.92   2.48
  7  1.46  1.42   2.01
  8 -0.265 2.61   4.68
  9  0.313 0.382  2.56
 10  0.554 1.94   2.28
# ... with 94 more rows