在R中,如何将参数与JSON数据中的一组值链接?
下面是JSON数据在R中,如何将参数与JSON数据中的一组值链接?,json,r,Json,R,下面是JSON数据 "parameters": [ { "parameterName": "IntervalToIgnoreDuringTransitions", "values": [ { "createdByTimestamp": "2014-09-22T14:39:25.717Z",
"parameters": [
{
"parameterName": "IntervalToIgnoreDuringTransitions",
"values": [
{
"createdByTimestamp": "2014-09-22T14:39:25.717Z",
"createdByUser": "tis",
"modifiedByUser": "",
"analyticParameterValueId": 502,
"analyticParameterNameId": 502,
"analyticParameterValue": "0"
}
]
},
{
"parameterName": "DateRange",
"values": [
{
"createdByTimestamp": "2014-09-22T14:38:25.297Z",
"createdByUser": "tis",
"modifiedByUser": "",
"analyticParameterValueId": 501,
"analyticParameterNameId": 501,
"analyticParameterValue": "12"
}
]
}
]
在R中创建以下data.frame结构
'data.frame': 2 obs. of 2 variables:
$ parameterName: chr "IntervalToIgnoreDuringTransitions" "DateRange"
$ values :List of 2
..$ :'data.frame': 1 obs. of 6 variables:
.. ..$ createdByTimestamp : chr "2014-09-22T14:39:25.717Z"
.. ..$ createdByUser : chr "tis"
.. ..$ modifiedByUser : chr ""
.. ..$ analyticParameterValueId: int 502
.. ..$ analyticParameterNameId : int 502
.. ..$ analyticParameterValue : chr "0"
..$ :'data.frame': 1 obs. of 6 variables:
.. ..$ createdByTimestamp : chr "2014-09-22T14:38:25.297Z"
.. ..$ createdByUser : chr "tis"
.. ..$ modifiedByUser : chr ""
.. ..$ analyticParameterValueId: int 501
.. ..$ analyticParameterNameId : int 501
.. ..$ analyticParameterValue : chr "12"
是否有简单的方法将参数名称与其各自的值链接起来
例如,如果data.frame名为df,我想使用df$DateRange$analyticParameterValue返回“12”。这应该可以做到:
library(jsonlite)
tmp <- fromJSON('{"parameters": [
{
"parameterName": "IntervalToIgnoreDuringTransitions",
"values": [
{
"createdByTimestamp": "2014-09-22T14:39:25.717Z",
"createdByUser": "tis",
"modifiedByUser": "",
"analyticParameterValueId": 502,
"analyticParameterNameId": 502,
"analyticParameterValue": "0"
}
]
},
{
"parameterName": "DateRange",
"values": [
{
"createdByTimestamp": "2014-09-22T14:38:25.297Z",
"createdByUser": "tis",
"modifiedByUser": "",
"analyticParameterValueId": 501,
"analyticParameterNameId": 501,
"analyticParameterValue": "12"
}
]
}
]}')
dat <- tmp$parameters$values
names(dat) <- tmp$parameters$parameterName
dat$DateRange$analyticParameterValue
## [1] "12"
library(jsonlite)
tmp