在R中使用NaN
读取json文件时遇到问题。它显示如下错误消息:
fromJSON(file = jsonfile.names [1])出错:意外字符'N'。
文件中项目的空值存在问题。如果我更改了文件中的所有fromJSON
,{"name": NaN,
"unit_price": 130848,
"amount": 11,
"up_to_data_sales": 45725}
工作正常。
示例数据如下:
attrAmount += (from item in salariesPerJobGrade
from ritem in attr
where item.JOB_GRADE_CD == ritem.JOB_GRADE_CD || ritem.JOB_GRADE_CD == "*"
select item.Value * ritem.RULE_VALUE).Sum();
如果没有手动更改json文件,是否有解决此问题的方法?提前谢谢!
答案 0 :(得分:3)
从技术上讲,这不是JSON。这是JavaScript。
我们可以在这里使用V8
包:
library(V8)
jsraw <- '{"name": NaN, "unit_price": 130848, "amount": 11, "up_to_data_sales": 45725}'
ctx <- v8()
ctx$assign("dat", JS(jsraw))
ctx$get("dat")
## $name
## NULL
##
## $unit_price
## [1] 130848
##
## $amount
## [1] 11
##
## $up_to_data_sales
## [1] 45725
您可以使用RJSONIO::fromJSON(jsraw)
获得类似的结果(因此我会询问您使用的是哪个JSON包)。
但是,这是一个玩具示例,所以如果我们收到更多信息,我们可能会提出更通用的解决方案。
另外,手工编辑数据通常是一个非常非常糟糕的主意。