Json 对于具有非null值的列表,is.null()返回true
上下文是一个R6类,带有一个名为“jsonResult”的插槽。 在这个类中有一个执行GET请求并处理结果的方法 在这个方法中,“jsonResult”是按照R6语法使用“self$jsonResult”访问的 在这里,我将fromJSON()应用于HTTP响应以生成列表。 基本案例是一个很好的列表,在这里请求得到了我想要的东西。 当我试图通过sapply()清除它时,它会删除数据,就像它是空的一样 代码如下: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
> 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
的示例也会很有帮助。既然我似乎无法删除这个问题,这将是一个理想的问题,我如何改进这篇文章,使它对其他人更有用?