如何以编程方式将同一函数的不同参数标记为microbenchmark::microbenchmark?
我有一个无界命名的参数列表,用于我计划在位置上使用的函数,例如如何以编程方式将同一函数的不同参数标记为microbenchmark::microbenchmark?,r,benchmarking,microbenchmark,R,Benchmarking,Microbenchmark,我有一个无界命名的参数列表,用于我计划在位置上使用的函数,例如 list( method1 = "method1", method2 = "method2", ..., methodn = "methodn" ) 与 如何使用package:microbenchmark使用提供的参数对给定函数进行基准测试?如果基准本身被命名为我的源代码列表中的位置参数,则会获得额外的分数 包的主要用途:我所见过的微基准的使用分散在哪里,就是在哪里用圆点指定要进行基准测试的任务。参数li
list(
method1 = "method1",
method2 = "method2",
...,
methodn = "methodn"
)
与
如何使用package:microbenchmark使用提供的参数对给定函数进行基准测试?如果基准本身被命名为我的源代码列表中的位置参数,则会获得额外的分数
包的主要用途:我所见过的微基准的使用分散在哪里,就是在哪里用圆点指定要进行基准测试的任务。参数
list
可用于计算未赋值表达式;这似乎是编程使用的正确途径。但是,由于expression()将参数的内部视为文字,因此我没有找到将参数插入expression()的方法。我用parse()走上了一条黑暗的道路,并让它工作了——但似乎必须有更好的方法。一个解决方案是将cat和sprintf与for循环一起使用,尽管如果有许多参数组合,可能会出现问题
cat("res <- microbenchmark(\n")
for (i in 1:4){
for (j in 1:4) {
cat(sprintf("f_%i_%i = f(%i, %i),\n", i, j, i, j))
}
}
cat(")\n")
cat(“res
cat("res <- microbenchmark(\n")
for (i in 1:4){
for (j in 1:4) {
cat(sprintf("f_%i_%i = f(%i, %i),\n", i, j, i, j))
}
}
cat(")\n")