将数据导入R时如何避免精度损失?

时间:2016-12-20 01:09:38

标签: java r

我的Java代码生成了一个CSV文件,现在想在R中使用它。问题是,我的某个属性存在精确问题。

Timestamp属性在Java中保存为long。将数据导入R时

1481653606064
1481653606064
1481653606064
1481653606065
1481653606068
1481653606073
1481653606081
1481653606083

转换为:

1,48165E+12
1,48165E+12
1,48165E+12
1,48165E+12
1,48165E+12
1,48165E+12
1,48165E+12
1,48165E+12

完全没用。

我刚刚开始与R合作,所以我不知道如何解决这个可能很简单的问题。我希望你能帮助我。

如果需要澄清,请发表评论。

3 个答案:

答案 0 :(得分:3)

不会发生精度损失,只需要完全精确地打印即可。最多2 ^ 53的整数值精确存储在数字数据类型中,2 ^ 53长度为15位(“9,007,199,254,740,992”),而您的数字只有12位数。

//View
Observable<CharSequence> loginObservable = RxTextView.textChanges(mEmail);
presenter.setLoginObservable(loginObservable);

//Presenter
void setLoginObservable(Observable<CharSequence> observable) {
    observable
        .map(this::isValidLogin) 
        .subscribe(isValid -> {
            //call appropriate view methods
        });

答案 1 :(得分:2)

{'updated_at': None, 'roll': 3, 'hash': 'f114b7a0fd714256015b5a420ebe974f3977c53d3a3423f8532b58b69a6f3aa5', 'state': 3, 'created_at': None, 'id': 9947837}{'updated_at': None, 'roll': 9, 'hash': '4e2a94657c9ca2c9206369d64fb84b03520875f870389bee1604fa4f74ef0cfa', 'state': 3, 'created_at': None, 'id': 9947838}{'updated_at': None, 'roll': 0, 'hash': 'd5dc5c3378724deb071ae6bdaa0cfb05222db68e4afc441d9138f0e84609fc4c', 'state': 3, 'created_at': None, 'id': 9947839}

答案 2 :(得分:1)

尝试使用bit64包和fread函数从csv加载data.table包中的数据。