在R中获得数百万+/-百万分之一的简便方法

时间:2016-06-02 21:23:27

标签: r

我想根据已知的实验误差确定观察的数值范围。

例如,假设我有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

1 个答案:

答案 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会根据您是在做百万分之一还是十亿分之一或其他什么来改变。我猜。