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