gpt4 book ai didi

json - JSON 文件中的 "NA"转换为 NA 逻辑

转载 作者:行者123 更新时间:2023-12-04 15:56:45 24 4
gpt4 key购买 nike

我有 json包含国家数据的文件。其中一个文件包含以下数据:

"[{\"count\":1,\"subject\":{\"name\":\"Namibia\",\"alpha2\":\"NA\"}}]"

我有以下代码转换 jsondata.frame使用 jsonlite包裹:
df = as.data.frame(fromJSON(jsonfile), flatten=TRUE)) 

我期待一个 data.frame带有数字和字符串:
count subject.name subject.alpha2
1 Namibia "NA"

相反, NA alpha2 代码正在自动转换为 NA合乎逻辑,这就是我得到的:
str(df)
$ count : int 1
$ subject.name : chr "Namibia"
$ subject.alpha2: logi NA

我希望 alpha2 是一个字符串,而不是逻辑。我该如何解决?

最佳答案

fromJSON 的那个特定实现(一个函数有三个不同的包同名)有一个simplifyVector 参数,它似乎阻止了corecion:

 require(jsonlite)

> as.data.frame( fromJSON(test, simplifyVector=FALSE ) )
count subject.name subject.alpha2
1 1 Namibia NA
> str( as.data.frame( fromJSON(test, simplifyVector=FALSE ) ) )
'data.frame': 1 obs. of 3 variables:
$ count : int 1
$ subject.name : Factor w/ 1 level "Namibia": 1
$ subject.alpha2: Factor w/ 1 level "NA": 1
> str( as.data.frame( fromJSON(test, simplifyVector=FALSE ) ,stringsAsFactors=FALSE) )
'data.frame': 1 obs. of 3 variables:
$ count : int 1
$ subject.name : chr "Namibia"
$ subject.alpha2: chr "NA"

我尝试查看该选项是否适用于 flatten争论,但很失望:
> str(  fromJSON(test, simplifyVector=FALSE, flatten=TRUE) )
List of 1
$ :List of 2
..$ count : int 1
..$ subject:List of 2
.. ..$ name : chr "Namibia"
.. ..$ alpha2: chr "NA"

关于json - JSON 文件中的 "NA"转换为 NA 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com