在purrr中提供tibble名称

时间:2018-04-21 17:43:16

标签: r purrr

我想知道是否可以在as_tibble函数中提供列名。我知道我可以使用rename函数来更改列名,但我想保存我写的行数。假设我希望我的列名称为a1a2a3

> 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 个答案:

答案 0 :(得分:1)

我们可以将as_tibblemap_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