【问题标题】:Iteratively adding function output to a tibble in R迭代地将函数输出添加到R中的小标题
【发布时间】:2021-09-21 13:53:40
【问题描述】:

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

column1 column2 etc
value value etc

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

ID column1 column2 etc
01 value value etc
02 value value etc
03 value value etc

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

【问题讨论】:

    标签: r dataframe iteration purrr tibble


    【解决方案1】:

    是的,使用 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')
    

    【讨论】:

      【解决方案2】:

      考虑使用rbindlist

      library(data.table)
      rbindlist(lapply(df$ID, fn), idcol = "ID")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-14
        • 2019-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多