0
我有一個字符格式的數據編號data.table,我試圖轉換爲數字編號。然而,問題是,數字是很長,我想從R.保留所有的數字沒有任何四捨五入爲examle的data.table的第5個元素:從字符轉換爲數字時的舍入錯誤
> TimeO[1]
[1] "20110630224701281482"
> TimeO[2]
[1] "20110630224701281523"
> TimeO[3]
[1] "20110630224701281533"
> TimeO[4]
[1] "20110630224701281548"
> TimeO[5]
[1] "20110630224701281762"
我寫了一個功能轉換從一個字符到數字:
convert_time_fast <- function(tim){
b <- tim - tim%/%10^12*10^12
# hhmmssffffff
ms <- b%%10^6; b <-(b-ms)/10^6
ss <- b%%10^2; b <-(b-ss)/10^2
mm <- b%%10^2; hh <-(b-mm)/10^2
# if hours>=22, subtract 24 (previous day)
hh <- hh - (hh>=22)*24
return(hh+mm/60+ss/3600+ms/(3600*10^6))
}
但是,舍入發生在R中,所以數據點現在有相同的時間。見轉換後的前5個元素:
TimeOC <--convert_time_fast(as.numeric(TimeO))
> TimeOC[1]
[1] 1.216311
> TimeOC[2]
[1] 1.216311
> TimeOC[3]
[1] 1.216311
> TimeOC[4]
[1] 1.216311
> TimeOC[5]
[1] 1.216311
任何幫助搞清楚這一點將不勝感激!
的問題是,我想圖表中的數據點,並用相同的時間點被彼此 – CheddaShredda
的頂部繪製當我做all.equal它說真,所以我認爲有一個問題在實際轉換功能 – CheddaShredda
我也有這個問題。將字符(帶有許多小數位)轉換爲數字。丟失小數位和後續問題。對於任何有答案的人來說,都是積極向上的。 :-) – roman