R: 从数字中提取结束数字时出现舍入错误



在R中,我想提取整数格式的数字的结束数字。但是,我的代码输出包含舍入错误。我想这是由as.integer函数引起的,但我不知道如何修复。还要注意,我的实际数据集大约是10GB,所以速度在这里非常重要。

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

使用round,因为as.integer会截断。

DT[,end_digit:=round(data*100)%%10]
DT
    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 := round(( data * 100 )) %% 10]

最新更新