【问题标题】:quoting unquoted members in nested list引用嵌套列表中未引用的成员
【发布时间】:2011-04-09 19:08:34
【问题描述】:

使用 R,我生成了一个包含某些未引用元素的列表。请在底部查看 - 这是无效的 javascript 代码。

R 代码(不起作用)

outq <- lapply (out, function (el){
 el <- if( is.factor(el$ann) ){ 
 el$ann <- apply(el$ann, 1, function(e){ e <- paste('"', e, '"', sep="") })
 }   
}) 

在 R 语言中,如何引用 list$x$ann 因子的成员?

当我尝试解析这个 JSON 时,json2.js 失败。

示例数据(无效 JSON)

results = JSON.parse(
{
 "result": {
 "tot": {
 "molal": [ 0.00071243, 0.00071243,      4,      4 ],
   "ann": [ , , ,  ] 
},
   "desc": {
 "val": [ 8.3486,      4, 0.8531, 4.0025, 0.99999, 0.00072541, 0.00071243,    100, -1.2983e-05, -0.00016223,     17, 111.02, 55.511 ],
   "ann": [ Charge balance, Adjusted to redox eq, , , , , , , , , , ,  ] 
},
   "species": {
 "molal": [ 55.508, 0.00029101, 2.3071e-09, 0.00042017, 0.00028731, 4.4532e-06, 4.9292e-07, 0.00069149, 1.0274e-05, 6.2142e-06, 4.9139e-12,      4,      0, 4.1166e-27,      4, 8.5144e-21 ],
   "act": [ 0.8531, 0.00010921, 4.4812e-09, 1.4857e-06, 7.7889e-05, 4.4532e-06, 9.6777e-07, 0.00024834, 3.3916e-06, 0.00028204, 4.9139e-12, 2.2702,      0, 4.1166e-27, 3.7925, 1.8453e-20 ] 
},
   "master": {
 "molal": [ 0.00071243, 0.00071243,      4, 8.2332e-27,      4, 1.7029e-20 ] 
},
   "pphases": {
 "moles": 9.9993,
   "delta": -0.00071243 
},
   "ListInfo": {
 "n": 1,
   "format": true 
} 
} 
}
);

【问题讨论】:

    标签: r list r-factor quoting


    【解决方案1】:

    您是否有理由不能为 R 使用 RJSON / RJSONIO 包?

    【讨论】:

    • am 使用 RJSONIO,但它没有引用因素。
    • 嗯,你没说,还是我忽略了。因子是 R 构造,因此您可能需要通过 as.character() 进行转换。
    • 从 0.3.1 版开始,库 RJSONIO 还引用了因子变量的 JSON 表示。
    • 感谢您的更新。很高兴知道它现在可以正确处理因素。
    【解决方案2】:

    我使用这个 R 代码向前迈进了一步:

    outq <- lapply (out, function (el){el <- if( is.factor(el$ann) ){ el$ann <- lapply(el$ann, function(e){   e <- paste('"', e, '"', sep="") })} else {el}})  
    

    【讨论】:

    • 但我仍然想知道:有没有更优雅的方式来引用 R 中的字符串(或强制和引用任何数据类型)?有推荐的方法吗?还是某个图书馆?
    • 正如Dirk所说:el$ann
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多