【问题标题】:How to name the columns of map_dfc() in R?如何在 R 中命名 map_dfc() 的列?
【发布时间】:2020-09-25 14:33:07
【问题描述】:

我有一个关于命名来自purrr (Tidyverse) map_dfc 函数的列的问题。

我有一个输出单个数字的函数,假设这个函数是rnorm()。我想用不同的平均值复制这个函数n = 10 次,并将输出保存到数据框中,列名是mean 的名称。

library(purrr)
f_replicates <- function(n){
  replicate(n=10, rnorm(n=1, mean = n))
}

map_dfc(c(4, 10, 20), f_replicates)

这会创建一个 tibble,其中列名设置为

新名称:

  • 不适用 -> ...1
  • 不适用 -> ...2
  • 不适用 -> ...3

问题

你如何创建一个数据框,其中的手段作为列名?

【问题讨论】:

  • 如果你返回setNames(list(replicate(n=10, rnorm(n=1, mean = n))), n),列名就是手段

标签: r dataframe mapping purrr


【解决方案1】:

如果你想使用map_dfc,你需要命名输出。您可以在 f_replicates 函数内或在调用 map_dfc 之后命名输出。

f_replicates <- function(n){
  setNames(data.frame(replicate(n=10, rnorm(n=1, mean = n))), paste0('mean_', n))
}

purrr::map_dfc(c(4, 10, 20), f_replicates)

#     mean_4   mean_10  mean_20
#1  6.058674 10.403541 18.76108
#2  4.871537  7.659355 20.11602
#3  3.654629 11.274651 19.90208
#4  3.848754  9.033448 20.22821
#5  4.788205  9.135202 19.80254
#6  4.035633  9.637215 20.27024
#7  3.748321 10.521144 19.55705
#8  1.927361 10.364091 20.95778
#9  3.857333  9.998084 21.17971
#10 2.490418 11.254264 20.32196

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-28
    • 1970-01-01
    • 2020-05-19
    相关资源
    最近更新 更多