Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 对于具有非null值的列表,is.null()返回true_Json_R_List_Sapply - Fatal编程技术网

Json 对于具有非null值的列表,is.null()返回true

Json 对于具有非null值的列表,is.null()返回true,json,r,list,sapply,Json,R,List,Sapply,上下文是一个R6类,带有一个名为“jsonResult”的插槽。 在这个类中有一个执行GET请求并处理结果的方法 在这个方法中,“jsonResult”是按照R6语法使用“self$jsonResult”访问的 在这里,我将fromJSON()应用于HTTP响应以生成列表。 基本案例是一个很好的列表,在这里请求得到了我想要的东西。 当我试图通过sapply()清除它时,它会删除数据,就像它是空的一样 代码如下: > print(jsonResult) [[1]] Inp

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

在这个方法中,“jsonResult”是按照R6语法使用“self$jsonResult”访问的

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

代码如下:

> 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()
>打印(jsonResult)
[[1]]
输入值KEGG路径ID
Psme2b ps“mmu03050//mmu04612”
[[2]]
输入值KEGG路径ID
“Psmb10”“mmu03050”
>dput(jsonResult)
列表(结构(c(“Psme2b ps”,“mmu03050//mmu04612”),.Names=c(“InputValue”,
“KEGG通路ID”)、结构(c(“Psmb10”、“mmu03050”)、名称=c(“InputValue”,
“KEGG通路ID”))
>jsonResult dput(jsonResult)
列表()

删除“self”修复了它,因为令人尴尬的是,我以前从类定义的插槽中删除了“jsonResult”,因为它没有在其他地方使用。因此,“self$jsonResult”是对一个不存在的属性的调用,该属性在编译和执行过程中以静默方式失败。

您能否提供
dput(jsonResult)
?dput()output addedwhat是
self$jsonResult
?如果使用
jsonResult
而不是
self$jsonResult
则结果不为空。您是否尝试过使用apply系列中的其他函数?我经常发现
sapply
没有输出预期的内容。你能提供一个有空值的示例吗?在没有
self
的情况下运行代码对我来说很好,提供一个可以使用
self
的示例也会很有帮助。既然我似乎无法删除这个问题,这将是一个理想的问题,我如何改进这篇文章,使它对其他人更有用?