处理生成警告然后还返回值的调用的最佳方法是什么?
例如
> require(testthat)
> expect_warning(log(-1))
> expect_equal(log(-1), NaN)
Warning message:
In log(-1) : NaNs produced
Run Code Online (Sandbox Code Playgroud)
我想编写测试,以便对log(-1)的调用应该(a)生成警告和(b)返回值NaN.上面的方法有效,但在底部看到"警告信息:"可能会让人感到困惑.我应该暂时禁止警告吗?
有没有办法报告计算每个块需要多少时间?我正在从一些大型脚本创建一个文档,很高兴知道时间在哪里.我确实使用了缓存功能,所以当缓存对象时,使用文档的速度并不太慢,但我想隔离缓慢的块,看看除非绝对需要,否则我可以阻止它们被重新计算.
一种想法是例如将每个块包装在system.time()中并报告每个块输出下面的system.time,或者在边缘...
再次感谢Yihui这样优秀的软件.
下面的代码生成我想要的图表.除了我想在工具提示中添加值l.目前我不知道该怎么做.
require(googleVis)
df <- data.frame(x = c(1:5), y = c(10, 20 , 30, 40, 50),
l = c("A", "B", "C", "D", "E"))
plot(gvisLineChart(df, xvar = "x", yvar = "y"))
Run Code Online (Sandbox Code Playgroud) 我对ggplot2比较陌生,多年来在R中使用了基本图形.我一直喜欢基本图形的一件事是轴上的额外填充,因此两个轴不会在原点接触.以下是基本图形中的一个简单示例:
png(file="base.png")
plot(x,y, bty="n")
dev.off()
Run Code Online (Sandbox Code Playgroud)
这使得:

当我在ggplot2中做类似的事情的时候
require(ggplot2)
x <- y <- 1:10
png(file="qplot.png")
qplot(x, y) + theme_classic()
dev.off()
Run Code Online (Sandbox Code Playgroud)
我明白了:

如何调整绘制轴的范围?例如对于y轴,我宁愿它停在10.0,而不是继续到10.5左右?
更新:感谢您的评论.我现在有我想要的东西; 这里是一个片段,它只将轴拉出到每个轴上的最小/最大刻度.
o = qplot(x, y) + theme_classic() +
theme(axis.line=element_blank())
oo = ggplot_build(o)
xrange = range(oo$panel$ranges[[1]]$x.major_source)
yrange = range(oo$panel$ranges[[1]]$y.major_source)
o = o + geom_segment(aes(x=xrange[1], xend=xrange[2], y=-Inf, yend=-Inf)) +
geom_segment(aes(y=yrange[1], yend=yrange[2], x=-Inf, xend=-Inf))
plot(o)
Run Code Online (Sandbox Code Playgroud)
