В R Я хочу извлечь конечную цифру числа в целочисленном формате. Однако вывод моего кода содержит ошибки округления. Я предполагаю, что это вызвано функцией as.integer
, но я не знаю, как это исправить. Также обратите внимание, что мой фактический набор данных составляет около 10 ГБ, поэтому скорость здесь очень важна.R: Ошибка округления при извлечении конечной цифры из числа
library("data.table")
data<-c(72.15,72.02,72.00,71.90,71.85,71.74,72.60)
DT<-data.table(data)
DT[,end_digit:=as.integer((data*100))%%10]
data end_digit
1: 72.15 5
2: 72.02 2
3: 72.00 0
4: 71.90 0
5: 71.85 4
6: 71.74 3
7: 72.60 9
Чтобы было ясно, ожидаемый результат:
data end_digit
1: 72.15 5
2: 72.02 2
3: 72.00 0
4: 71.90 0
5: 71.85 5
6: 71.74 4
7: 72.60 0
Не можете ли вы попробовать «DT [, end_digit: = substr (data * 100,4,4)]' – akrun