2016-07-21 4 views
0

я случайно проблема при чтении файла JSON с помощью fromJSON в R. Это показывает сообщение об ошибке, как показано ниже:Ошибка при чтении файла JSON с помощью fromJSON в R

Ошибка в fromJSON (Файл = jsonfile.names [1]): неожиданный символ «N».

Это проблема с нулевыми значениями элементов в файле. Если я изменю все NaN внутри файла, то fromJSON отлично работает.

выборки данных, как показано ниже:

{"name": NaN, 
"unit_price": 130848, 
"amount": 11, 
"up_to_data_sales": 45725} 

Есть ли решение этой проблемы без ручного изменения файла JSON? Заранее спасибо!

+0

http://stackoverflow.com/questions/31955051/handling-nan-when-using-fromjson-in-r Я нашел этот пост, возможно, это поможет –

+0

, какой пакет является вашим 'fromJSON', есть несколько из них в CRAN – hrbrmstr

ответ

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 пакет, который вы использовали).

Но это пример игрушки, поэтому, если бы у нас было больше информации от вас, мы могли бы найти более общее решение.

Кроме того, данные редактирования вручную, как правило, действительно очень плохая идея.

+0

Спасибо за помощь. Я использую пакет «rjson». – gchen

+0

Я попробовал пакет «rjson» и «jsonlite». Функция «fromJSON» в обоих пакетах несовместима со значением «NaN» элемента. После того, как я вручную изменил значение «NaN» на 0 этого элемента, функция работает нормально. Я не знаю, есть ли на этом достойное решение. Спасибо – gchen

+0

Итак, почему вы не попробовали одно из двух решений в этом ответе? – hrbrmstr