有人可以向我解释一下公差参数all.equal吗?
手册说(?all.equal):
tolerance:numeric≥0.不考虑小于容差的差异.scale = NULL(默认值)的数值比较是通过首先计算两个数值向量的平均绝对差值来完成的.如果这小于容差或不是有限的,则使用绝对差异,否则相对差异按平均绝对差异缩放.
例:
all.equal(0.3, 0.26, tolerance=0.1)
Run Code Online (Sandbox Code Playgroud)
回报 Mean relative difference: 0.1333333
为什么这里返回平均相对差异?两个数值向量的平均绝对差值是否小于容差?
0.3 - 0.26 = 0.04 < 0.1
Run Code Online (Sandbox Code Playgroud)
谢谢!
我开始使用lattice图形包但我偶然发现了一个问题.我希望有人可以帮助我.我想用相应的函数绘制直方图.
这是文件foo.r:
library("lattice")
data <- data.frame(c(1:2),c(2:3))
colnames(data) <- c("RT", "Type")
pdf("/tmp/baz.pdf")
histogram( ~ RT | factor(Type), data = data)
dev.off()
Run Code Online (Sandbox Code Playgroud)
当我使用R --vanilla < foo.r它运行此代码时,一切正常.
不过,如果我使用的是第二档bar.r用
source("bar")
Run Code Online (Sandbox Code Playgroud)
并运行R --vanilla < bar.r代码生成错误的pdf文件.现在我发现source("bar", echo=TRUE)解决了这个问题.这里发生了什么?这是一个错误还是我错过了什么?
我正在使用R版本2.13.1(2011-07-08)和lattice_0.19-30
我们来做一些四舍五入
> round(-0.001, 2)
[1] 0
Run Code Online (Sandbox Code Playgroud)
我收到零.
现在与sprintf结合使用
> sprintf("%f", round(-0.001,2))
[1] "-0.000000"
Run Code Online (Sandbox Code Playgroud)
为什么有减号?我期待0.000000.
$R --version
R version 2.13.1 (2011-07-08)
Run Code Online (Sandbox Code Playgroud)