Повышение эффективности при зацикливании определенной пользователем функции, для которой в качестве аргументов требуются несколько фреймов данных - PullRequest
0 голосов
/ 21 сентября 2018

Я прошу прощения, если это очень простой вопрос, но мне кажется, что я не могу найти работоспособное решение.Я создал функцию, которая требует три входа, два кадра данных и одно значение.Мне нужно запустить эту функцию несколько раз с одними и теми же входами, но с другим начальным числом.Мне удалось создать цикл 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)

Спасибо за помощь заранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...