Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式将同一函数的不同参数标记为microbenchmark::microbenchmark?_R_Benchmarking_Microbenchmark - Fatal编程技术网

如何以编程方式将同一函数的不同参数标记为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")