2017-08-03 126 views
-1

上下文是一個帶有稱爲「jsonResult」的插槽的R6類。 在這個類中有一個方法執行GET請求並處理結果。is.null()對非空值列表返回true

在此方法中,「jsonResult」通過符合R6語法的「self $ jsonResult」進行訪問。

這裏我已經從JSON()應用到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() 
+0

你能提供'dput(jsonResult)'的輸出嗎? – Florian

+0

dput()輸出添加 – mkk

+1

什麼是'self $ jsonResult'?如果使用'jsonResult'而不是'self $ jsonResult',那麼結果不是NULL。 – Mahdi

回答

0

卸下「自我」固定它,因爲,尷尬,我以前曾在類定義中刪除「jsonResult」從狹槽,因爲它不用於其他地方。因此,「self $ jsonResult」是對在編譯和執行過程中默默無效的不存在的屬性的調用。

+0

,因爲它似乎我不能刪除這個問題,這將是理想的,我該如何改進這篇文章,使其對別人更有用? – mkk