0
我需要動態地確定給定的十進制數列的差值。給定序列:動態確定十進制數列的差值
my_seq <- seq(0, 10, 0.1)
其中0.1可以是任何小數(0.01,0.5),但是我使用0.1作爲示例。我試圖確定粒度爲0.1是:
# Generating sequence.
my_seq <- seq(0, 10, 0.1)
# Attempting to find difference.
uni_diff <- unique(diff(my_seq))
print(uni_diff) # Will be multiple, due to floating point behavior.
# Printing out uni_diff for visualization.
print(sprintf("%.54f", uni_diff))
截至年底指出,我的差分失敗,因爲點數字是如何漂浮在電腦處理,請參閱「圈1」在R地獄http://www.burns-stat.com/pages/Tutor/R_inferno.pdf
有沒有可靠的方法來做到這一點?我可以強制用戶告訴我的粒度,這是有效的,但希望能夠從給定的序列自動確定。
編輯:
爲了進一步說明我的問題。假設我給了你:
x = c(0.1, 0.2, 0.3)
然後問如何確定0.1是每個數字之間的差別。這將如何完成?對整數來說是微不足道的,但看起來不像浮點。
謝謝。
我不明白:你是否試圖找到*完全* 0.1?它不存在。說服自己運行'print(sprintf(「%。54f」,0.1))'。 –
如果您擔心處理小的舍入差異的「好」值,請嘗試'mean(diff(my_seq))' – G5W
我試圖確定「by」來自給定的十進制序列。例如,如果給出(0.1,0.2,0.3)這些分段了多少?浮點問題使這很困難。提前不知道0.1。 – giraffehere