Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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
创建一个函数来获取Euromc文献以跳过纸张,该函数执行';t返回表_R_Function - Fatal编程技术网

创建一个函数来获取Euromc文献以跳过纸张,该函数执行';t返回表

创建一个函数来获取Euromc文献以跳过纸张,该函数执行';t返回表,r,function,R,Function,这是我想跟进的问题 我正在以一种相当复杂的方式去做我现在想做的事情 但是一个简单的解决方案是这样的 我得到pmcids,哪个类是角色 按照建议做第二部分,效果非常好 doc <- map("PMC7809753", epmc_ftxt) tbls <- pmc_table(doc[[1]]) tbls[[1]] 如果我没有得到任何信息,那么我将跳到下一篇,换句话说,如何解决这个错误 我在创建复杂函数方面的经验非常少/分钟,但是从代码中我知道这段代码应该在处理它,

这是我想跟进的问题

我正在以一种相当复杂的方式去做我现在想做的事情

但是一个简单的解决方案是这样的

我得到pmcids,哪个类是角色

按照建议做第二部分,效果非常好

doc <- map("PMC7809753", epmc_ftxt)
tbls <- pmc_table(doc[[1]])
tbls[[1]]
如果我没有得到任何信息,那么我将跳到下一篇,换句话说,如何解决这个错误

我在创建复杂函数方面的经验非常少/分钟,但是从代码中我知道这段代码应该在处理它,但我不确定为什么不是

} else {
    #-- If fail, return NA
    return(NA)
  }


Error in names(tables) <- paste(table_caps$label, table_caps$text, sep = " - ") : 
      'names' attribute [3] must be the same length as the vector [2]
但是问题出现在
“PMC7806552”
上。那么,当我在获取表时看到错误,然后移动到下一个PMCIDs时,如何获得空结果呢

任何帮助都将不胜感激


或者有更简单的方法来实现它。

这里是稍微修改过的函数。唯一的编辑是我添加了以下行:

table_caps <- table_caps %>% group_by(label) %>% 
   summarise(text = paste(text, collapse=" "), 
             tag = "table")

下面是为工作而稍微修改的函数。唯一的编辑是我添加了以下行:

table_caps <- table_caps %>% group_by(label) %>% 
   summarise(text = paste(text, collapse=" "), 
             tag = "table")

让我来运行它,然后返回美国…………先生,您确实为我节省了几个小时的博士学位。谢谢你的慷慨帮助。我想现在是我真正学习如何创建函数的时候了。当我发表论文时,我肯定会引用并承认这些答案。让我运行它,然后返回美国…………先生,你肯定为我节省了几个小时的博士学位。谢谢你的慷慨帮助。我想现在是我真正学习如何创建函数的时候了。当我发表论文时,我肯定会引用并承认这些答案。
Error in names(tables) <- paste(table_caps$label, table_caps$text, sep = " - ") : 
  'names' attribute [3] must be the same length as the vector [2]
"PMC7837979" "PMC7809753" "PMC7790830" "PMC7797573" "PMC7806552" "PMC7836575"
} else {
    #-- If fail, return NA
    return(NA)
  }


Error in names(tables) <- paste(table_caps$label, table_caps$text, sep = " - ") : 
      'names' attribute [3] must be the same length as the vector [2]
$PMC7797573
NULL
table_caps <- table_caps %>% group_by(label) %>% 
   summarise(text = paste(text, collapse=" "), 
             tag = "table")
b <-epmc_search(query = 'cytarabine aml OPEN_ACCESS:Y',limit = 10)
pmcids <- b$pmcid[b$isOpenAccess=="Y"]
pub_tables <- lapply(pmcids, function(pmc_id) {
  message("-- Trying ", pmc_id, "...")
  doc <- tryCatch(pmc_xml(pmc_id), 
                  error = function(e) {
                    message("------ Failed to recover PMCID")
                    return(NULL)
                  })
  if(!is.null(doc)) { 
    #-- If succeed, try to get table
    tables <- pmc_table(doc)
    if(!is.null(tables)) {
      #-- If succeed, try to get table name
      table_caps <- pmc_caption(doc) %>%
        filter(tag == "table")
      table_caps <- table_caps %>% group_by(label) %>% 
        summarise(text = paste(text, collapse=" "), 
                  tag = "table")
      names(tables) <- paste(table_caps$label, table_caps$text, sep = " - ")
    }
    return(tables) 
  } else {
    #-- If fail, return NA
    return(NA)
  }
})