首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RJSONIO舍入误差

RJSONIO舍入误差
EN

Stack Overflow用户
提问于 2015-08-25 15:38:15
回答 1查看 51关注 0票数 2

RJSONIO包中的RJSONIO包中的toJSON函数有问题,在从数据帧读取时,值似乎是四舍五入的。

我想知道这是一个bug还是更深层次的R。

下面是一个可重复的例子:

代码语言:javascript
复制
sal <- structure(list(a = c(1250.00, 1250.04, 1250.08, 1250.12, 1250.16, 1250.2, 1250.24), 
                      b = c(1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36)),
                 .Names = c("a", "b"), row.names = c(NA, 26L), class = "data.frame")

当我从RJSONIO运行toJSON函数时:

代码语言:javascript
复制
library(RJSONIO)
RJSONIO::toJSON(sal)
[1] "{\n \"a\": [   1250,   1250, 1250.1, 1250.1, 1250.2, 1250.2, 1250.2 ],\n\"b\": [      1,   1.06,   1.12,   1.18,   1.24,    1.3,   1.36 ] \n}"

作为比较,我使用toJSON函数从rjson获得了这个结果:

代码语言:javascript
复制
library(rjson)
rjson::toJSON(sal)
[1] "{\"a\":[1250,1250.04,1250.08,1250.12,1250.16,1250.2,1250.24],\"b\":[1,1.06,1.12,1.18,1.24,1.3,1.36]}"

RJSONIO包似乎正在舍入这些值。例如,1250.04四舍五入到1250。

这是我的相关sessionInfo()

代码语言:javascript
复制
R version 3.2.1 (2015-06-18)
Platform: i686-pc-linux-gnu (32-bit)
Running under: Ubuntu 14.10

other attached packages:
[1] rjson_0.2.15   RJSONIO_1.3-0

有人能告诉我为什么会发生这种事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 15:57:07

digits中有一个RJSONIO:toJSON参数

代码语言:javascript
复制
library(RJSONIO)
toJSON(sal, digits = 6)
[1] "{\n \"a\": [    1250, 1250.04, 1250.08, 1250.12, 1250.16,  1250.2, 1250.24 ],\n\"b\": [       1,    1.06,    1.12,    1.18,    1.24,     1.3,    1.36 ] \n}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32208284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档