所以基本上我正在做一個物理實驗,在我的表中,我希望我的數據四捨五入到與誤差相同的精度,這個誤差被舍入爲1 sig fig。R舍入有效數字
因此,例如,如果我有以下:
angle <- c(4, 4.1, 4.2)
angle.error <- c(0.024, 0.3, 0.113)
data <- data.frame(angle,angle.error)
要我要與落得被四捨五入爲1個SIG圖角度誤差,角度四捨五入到小數點後作爲對應的數角度誤差,給予
angle <- c(4.00, 4.1, 4.2)
angle.error <- c(0.02,0.3,0.1)
data <- data.frame(angle, angle.error)
希望這是有道理的!這是我們教授的用於呈現數據的標準方式,因此我很驚訝我發現它找到正確的方法是多麼困難。任何貢獻將是偉大的!
編輯:
如果我要變成一個UDR這裏說的數據是5列在我的數據幀的6列中的錯誤,我寫:
Conv2 <- function(x) {
x[6] <- signif(x[6],1)
exp <- floor(log10(x[6]))
man <- x[6]/10^exp
x[5] <- round(x[5], -exp) # Error associated with this line I think
sapply(seq_along(x[5]), function(i) format(x[i,5], nsmall=-exp[i]))
return(x)
}
當我實現它我得到錯誤 '在FUN(X [[i]],...)中的錯誤:數學函數的非數字參數'
我可能需要一點澄清。您是否使用「1dp」來表示1位有效數字或1位小數位。如果您不使用1dp與1 sig fig交替使用,那麼您的輸出看起來不太正確。此外,你說你想'angle'四捨五入到sigfigs與angle.error相同的數量,但是你的輸出使用兩個sigfigs作爲'angle',而'angle.error'只有一個。 – Benjamin
是的抱歉,我得到了這個錯誤的方式 - 我現在編輯它是有道理的 –