Czy istnieje typ danych „Decimal” w R?
Czytam dane zapisane w formacieDECIMAL
z tabeli MySQL. Chcę wykonać obliczenia na tych liczbach w R.
Zwykłem rzucać je na representację numerias.numeric()
, ale dokumentacja mówi:
numeryczny jest identyczny z podwójnym (i rzeczywistym).
Ale czy istnieje również typ danych dziesiętny w R? (Typ danych bez błędów zaokrąglania, ...)
Oto prosty przykład problemu z błędami zaokrąglania:
numbersStrings = c("0.1", "0.9")
numbersNumeric = as.numeric(numbersStrings)
numbersMirror = c(numbersNumeric, 1-numbersNumeric)
str(numbersMirror)
numbersMirror
unique(numbersMirror) # has two times 0.1 ...
sprintf("%.25f", numbersMirror)
sprintf("%.25f", unique(numbersMirror)) # ... because there was a rounding error