is.null()为具有非空值

时间:2017-08-03 17:55:26

标签: json r list sapply

上下文是一个R6类,带有一个名为" jsonResult"的插槽。 在这个类中,有一个执行GET请求并处理结果的方法。

在这种方法中," jsonResult"使用" self $ jsonResult"符合R6语法。

这里我已经将fromJSON()应用于HTTP响应以生成列表。 基本案例是一个很好的列表,请求得到了我想要的。 当我尝试通过sapply()清理它时,它会删除数据,就像它是null一样。

以下是代码:

> print(jsonResult)
[[1]]
          InputValue      KEGG Pathway ID 
         "Psme2b-ps" "mmu03050//mmu04612" 

[[2]]
     InputValue KEGG Pathway ID 
       "Psmb10"      "mmu03050" 

> dput(jsonResult)
list(structure(c("Psme2b-ps", "mmu03050//mmu04612"), .Names = c("InputValue", 
"KEGG Pathway ID")), structure(c("Psmb10", "mmu03050"), .Names = c("InputValue", 
"KEGG Pathway ID")))


> jsonResult <- sapply(self$jsonResult, 
    FUN=function(x) {
            x[sapply(x, is.null)] <- NA
               unlist(x)
        })

> print(jsonResult)
list()

> dput(jsonResult)
list()

1 个答案:

答案 0 :(得分:0)

删除&#34; self&#34;修复它,因为,令人尴尬的是,我之前删除了&#34; jsonResult&#34;来自类定义中的槽,因为它没有在别处使用。因此,&#34;自我$ jsonResult&#34;是对在编译和执行期间静默失败的不存在属性的调用。