【问题标题】:Provide tibble names in purrr在 purrr 中提供 tibble 名称
【发布时间】:2018-10-02 04:02:01
【问题描述】:

我想知道是否可以在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

【问题讨论】:

  • 您可以将其通过管道传输到setNames(c("a1", "a2", "a3"))。你是这个意思吗?你在哪里使用as_tibble
  • map_dfc(~as_tibble(.x))
  • 哦,呵呵。在map_dfc 之后尝试setNames(c("a1", "a2", "a3"))

标签: r purrr


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多