首页 > 解决方案 > 如何在 R 中命名 map_dfc() 的列?

问题描述

我有一个关于命名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)

这将创建一个小标题,其中列名设置为

新名称:

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

问题

您如何使用作为列名的手段创建数据框?

标签: rdataframemappingpurrr

解决方案


如果要使用,则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

推荐阅读