这是我的第二次发帖,希望这段代码可重复。 我正在尝试列出每个关键词和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")
使用更大的数据集运行时,我还有第二个问题,但我稍后再上传。 有什么想法吗?非常感谢和帮助!
答案 0 :(得分:0)
有两个问题。首先是错字。您的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 1