Вам будет полезно попробовать библиотеку TestScenarios .
testscenarios обеспечивает чистую инъекцию зависимостей для тестов стиля стилей python. Это может быть использовано для тестирования интерфейса (тестирование многих реализаций через один набор тестов) или для классической инъекции зависимостей (обеспечить тестирование зависимостями внешне от самого тестового кода, что позволяет легко тестировать в разных ситуациях).
Вы можете использовать outer
с векторизованной версией вашей функции, используя mapply
.
id <- seq_along(colnames(ddf))
outer(id,id,function(x,y)mapply(myfunction,ddf[,x],ddf[,y]))
опция agstudy - это здорово. Другой вариант заключается в том, чтобы заранее создать карту итераций, а затем применить применительно к этому:
iterate <- expand.grid(1:3,1:3)
X <- apply(iterate,1,function(x) myfunction(ddf[,x[1]],ddf[,x[2]]))
Возможно, стоит спуститься по этому маршруту, только если у вас имеется большое количество столбцов и многоядерная система. Затем вы будете параллелизировать его, используя одну из операций параллельного применения в пакете parallel
.