首页 > 解决方案 > 提高循环需要多个数据帧作为参数的用户定义函数时的效率

问题描述

如果这是一个非常简单的问题,我深表歉意,但我似乎无法找到可行的解决方案。我创建了一个需要三个输入、两个数据框和一个值的函数。我需要使用相同的输入多次运行此函数,但种子不同。我设法创建了一个 for 循环,如下所示,它可以满足我的需要,但它真的很慢。我想知道是否有任何方法可以提高这个循环的速度。我曾尝试使用 lapply 和 purr::map 但我似乎无法根据需要获取多个输入。

#Simple example version of the code I have for demonstration
library(dplyr)
exampe_function <- function(df1 ,df2, singlevalue){
  df3 <- sample_frac(df1, size = 1, replace = TRUE)
  temp <- df3[1] + df2[1]
  out <- temp[1,1] * singlevalue #Only need a single value
  return(out)
}

example_df1 <- data.frame(x = rnorm(10), y = rnorm(10))
example_df2 <- data.frame(x = rnorm(10), y = rnorm(10))
singlevalue <- 0.5

test <- exampe_function(example_df1, example_df2, singlevalue)

test_list <- list()
for (i in 1:10) {
  print(i)
  t <- exampe_function(example_df1, example_df2, singlevalue)
  test_list <- c(test_list, t)
}

unlist(test_list)

我在这里先向您的帮助表示感谢

标签: rloopsfor-loop

解决方案


推荐阅读