gpt4 book ai didi

R 基准代码不生成输出

转载 作者:太空狗 更新时间:2023-10-29 12:28:10 25 4
gpt4 key购买 nike

我不是 R 用户,但我正在尝试在我管理的各种计算机上生成一些基准信息,以便为即将到来的购买提供信息。

我在命令行(版本 3.2.3)上使用 R,并在 R 中键入以下内容,但这不会在 R 中生成任何结果。请注意,rbenchmark 包已经安装。

任何建议或想法将不胜感激!谢谢!

> source("rbenchmark_ex.R")
Loading required package: rbenchmark
>

rbenchmark_ex.R 文件:

require('rbenchmark')

benchmark(1:10^6)

# Example 1 ------
# Benchmarking the allocation of one 10^6-element numeric vector,
# by default replicated 100 times
benchmark(1:10^6)

# simple test functions used in subsequent examples
random.array = function(rows, cols, dist=rnorm)
array(dist(rows*cols), c(rows, cols))
random.replicate = function(rows, cols, dist=rnorm)
replicate(cols, dist(rows))

# Example 2 ----------
# Benchmarking an expression multiple times with the same replication count,
# output with selected columns only
benchmark(replications=rep(100, 3),
random.array(100, 100),
random.array(100, 100),
columns=c('test', 'elapsed', 'replications'))

# Example 3 ---------
# Benchmarking two named expressions with three different replication
# counts, output sorted by test name and replication count,
# with additional column added after the benchmark
within(benchmark(rep=random.replicate(100, 100),
arr=random.array(100, 100),
replications=10^(1:3),
columns=c('test', 'replications', 'elapsed'),
order=c('test', 'replications')),
{ average = elapsed/replications })

# Example 4
# Benchmarking a list of arbitrary predefined expressions
tests = list(rep=expression(random.replicate(100, 100)),
arr=expression(random.array(100, 100)))
do.call(benchmark,
c(tests, list(replications=100,
columns=c('test', 'elapsed', 'replications'),
order='elapsed')))

最佳答案

如果您获取文件,则默认情况下不会打印任何内容。有多种方法可以解决此问题,具体取决于您的具体需求。

R控制台输出

如果你想强制只打印一些东西,你可以将它们包装在 print() 中。命令。示例:

 print(benchmark(1:10^6))

如果你想打印所有东西,那么你也可以提供 source()带有进一步参数的函数。存在三种有用的可能性:

  • source("rbenchmark_ex.R", echo = TRUE) : 这会回显评估的代码在每行代码之后打印结果。基本上,这看起来就像您将脚本中的每一行输入到控制台并对其进行评估。

  • source("rbenchmark_ex.R", print.eval = TRUE) : 只打印结果,不回显源代码。

  • source("rbenchmark_ex.R", echo = TRUE, print.eval = FALSE) :这只回显代码,但不打印结果。 (可能没那么有用...)

输出到文件

也许您更愿意将输出保存在文件中。这可以通过使用 sink() 来完成。 (正如 42- 在他的评论中所建议的那样)。只需将以下行添加到您的脚本中,之后的所有输出都将写入该文件:

sink("output.txt")

然后您可以在 R 控制台中获取脚本,仍然使用上述选项来指定您想要的输出类型。

使用命令行

您也可以直接从命令行执行此操作,而无需先启动 R 控制台。例如:

Rscript -e 'source("rbenchmark_ex.R", echo = TRUE)'

这会将输出写入控制台(当然,您可以使用 > 将其重定向)或写入文件,如果您使用了 sink()在脚本中。也可以直接运行

Rscript rbenchmark_ex.R

但这只会打印结果,不会回显代码。

关于R 基准代码不生成输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com