这是我第二次发帖,我希望这段代码更具可重复性。我正在尝试为每个关键字和PUBMED出版物的数量列出一个列表。我已经创建了一个使用Entrez库的函数。然而,到目前为止,如果手动处理该函数就可以工作,但是当我尝试在df上运行它时,它返回零。
##librarires
#install.packages("rentrez")
library(tidyverse)
library(rentrez)
keywords <- structure(list(keyword = c("ד×\231סקצ×\231×” 1 â\200“ גב",
"Netterâ\200\231s atlas (6th edition): Plates 171", "Grant's dissector (12 edition): pages 129-135",
"Back â\200“", "trapezius muscle", "deltoid muscle", "teres major/minor muscle",
"latissimus dorsi muscle", "serratus anterior/posterior superior/inferior muscle",
"levator scapulae", "rhomboid major/minor muscle", "erector spinae muscle",
"thoracolumbar fascia.", "Bone â\200“", "Clavicle", "acromial/sternal end",
"shaft body", "subclavian groove", "conoid tubercle", "trapezoid line"
)), row.names = c(NA, -20L), class = c("tbl_df", "tbl", "data.frame"))
articles_number <- function(trm) {
trm<- paste(trm,"[All Fields]")
pkg_search <- entrez_search(db="pubmed",
term=trm
)
return(pkg_search$count) }
pubmed_count <- keywords %>%
mutate(cnt = articles_number(keywords))
##As an example, running this function only on clavicle reruns a non zero number
articles_number("Clavicle")在运行更大的数据集时,我有第二个问题,但我会在稍后上传。有什么想法吗?非常感谢并感谢您的帮助
发布于 2020-05-28 21:57:34
有两个问题。第一个是打字错误。您的keywords数据框没有名为keywords的列。它名为keyword,因此mutate调用不会找到keywords。其次,您的articles_number函数没有矢量化,因此它需要放在sapply中
pubmed_count <- keywords %>% mutate(cnt = sapply(keyword, articles_number))
pubmed_count
#> pubmed_count
#> # A tibble: 20 x 2
#> keyword cnt
#> <chr> <int>
#> 1 דיסקציה 1 – גב 0
#> 2 Netter’s atlas (6th edition): Plates 171 0
#> 3 Grant's dissector (12 edition): pages 129-135 0
#> 4 Back – 273
#> 5 trapezius muscle 4129
#> 6 deltoid muscle 3216
#> 7 teres major/minor muscle 10
#> 8 latissimus dorsi muscle 4580
#> 9 serratus anterior/posterior superior/inferior muscle 0
#> 10 levator scapulae 1406
#> 11 rhomboid major/minor muscle 4
#> 12 erector spinae muscle 335
#> 13 thoracolumbar fascia. 9228
#> 14 Bone – 212
#> 15 Clavicle 8946
#> 16 acromial/sternal end 9
#> 17 shaft body 1386
#> 18 subclavian groove 5
#> 19 conoid tubercle 15
#> 20 trapezoid line 1https://stackoverflow.com/questions/62066274
复制相似问题