Как запустить функцию с двумя аргументами (векторы целых чисел) без двойного цикла? [Дубликат]

Вам будет полезно попробовать библиотеку TestScenarios .

testscenarios обеспечивает чистую инъекцию зависимостей для тестов стиля стилей python. Это может быть использовано для тестирования интерфейса (тестирование многих реализаций через один набор тестов) или для классической инъекции зависимостей (обеспечить тестирование зависимостями внешне от самого тестового кода, что позволяет легко тестировать в разных ситуациях).

2
задан rnso 21 September 2014 в 10:02
поделиться

2 ответа

Вы можете использовать outer с векторизованной версией вашей функции, используя mapply.

id <- seq_along(colnames(ddf))
outer(id,id,function(x,y)mapply(myfunction,ddf[,x],ddf[,y]))
2
ответ дан agstudy 28 August 2018 в 07:23
поделиться

опция agstudy - это здорово. Другой вариант заключается в том, чтобы заранее создать карту итераций, а затем применить применительно к этому:

iterate <- expand.grid(1:3,1:3)
X <- apply(iterate,1,function(x) myfunction(ddf[,x[1]],ddf[,x[2]]))

Возможно, стоит спуститься по этому маршруту, только если у вас имеется большое количество столбцов и многоядерная система. Затем вы будете параллелизировать его, используя одну из операций параллельного применения в пакете parallel.

2
ответ дан andrewzm 28 August 2018 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: