我想根据已知的实验误差确定观察的数值范围。
例如,假设我有790.77
的观测值,实验误差为10ppm
(即+/- 10 / 1e6)。这意味着这个数字实际上是790.76-790.78。
如果观测值为1254.1,则范围为1254.0-1254.2。同样,如果观测值为12.500,则范围为12.499-12.501。
我一直试图用一种简单的方法在R中做到这一点,但由于R倾向于舍入0(例如12.500变为12.5),因此并不容易。
有什么想法吗?
10ppm的例子:
790.77 => 790.76-790.78
1254.1 => 1254.0-1254.2
12.5 => 12.499-12.501
790153 => 790143-790163
答案 0 :(得分:4)
我打算将此作为答案添加,因为它似乎会产生您想要的输出,但我承认我并不完全遵循这个理由......
x <- c(790.77,1254.1,12.5,790153)
m <- 10 ^ (6 - floor(log10(x)) - 1)
(m*x - 10) / m
(m*x + 10) / m
... 6
会根据您是在做百万分之一还是十亿分之一或其他什么来改变。我猜。