首页 > 解决方案 > 迭代地将函数输出添加到R中的小标题

问题描述

我在 R 中有一个函数,它将参与者 ID 作为输入并输出一个只有一行和 10 列的数据帧。要调用该函数,我需要做的就是function(id)得到:

第 1 列 第 2 列 ETC
价值 价值 ETC

我想对 ID 列表中的每个 ID 运行该函数,并输出一个 tibble,每个参与者有一行,其中第一列是 ID 号,后跟函数输出中的所有普通列,如下所示:

ID 第 1 列 第 2 列 ETC
01 价值 价值 ETC
02 价值 价值 ETC
03 价值 价值 ETC

我的直觉(作为一个没有经验的 R 用户)是尝试for循环执行此操作,但我认为会有更好的方法来使用purrr. 这map_df是我想要的吗?以及如何为参与者 ID 添加额外的列?

标签: rdataframeiterationpurrrtibble

解决方案


是的,使用map_df将有助于指定.id参数。

fn <- function(id) {
  #some function that returns a dataframe
}

#If your dataframe is called `df` with `ID` column in it
result <- purrr::map_df(df$ID, fn, .id = 'ID')

推荐阅读