【发布时间】:2020-04-02 23:10:41
【问题描述】:
我有一系列来自 RePEc 数据库的出版物标识符。我需要从数据库中获取参考列表,我可以这样做:
identifier <- "RePEc:imf:imfwpa:01/191"
url_base <- "http://citec.repec.org/api/amf/"
url <- paste0(url_base, identifier)
get_data <- read_html(url)
references <- html_nodes(get_data,'references') %>% html_nodes("text")
我得到一个如下所示的输出:
print(references)
{xml_nodeset (6)}
[1] <text ref="RePEc:rio:texdis:400"></text>
[2] <text ref="RePEc:fip:fednrp:9608"></text>
[3] <text ref="RePEc:nbr:nberwo:1172"></text>
[4] <text ref="RePEc:bla:ecnote:v:28:y:1999:i:3:p:335-355"></text>
[5] <text ref="RePEc:imf:imfwpa:00/69"></text>
[6] <text ref="RePEc:eee:jbfina:v:24:y:2000:i:1-2:p:203-227"></text>
我只想要个人标识符。换句话说,我只想要这个:
[1] "RePEc:rio:texdis:400"
[2] "RePEc:fip:fednrp:9608"
[3] "RePEc:nbr:nberwo:1172"
[4] "RePEc:bla:ecnote:v:28:y:1999:i:3:p:335-355"
[5] "RePEc:imf:imfwpa:00/69"
[6] "RePEc:eee:jbfina:v:24:y:2000:i:1-2:p:203-227"
我尝试使用html_text(references),但它只是给了我一系列空单元格..
获得这些数据后,我想创建一个数据框,其中每个值都位于原始标识符旁边。换句话说,我需要这样的东西:
identifier <- c("RePEc:imf:imfwpa:01/191", "RePEc:imf:imfwpa:01/191", "RePEc:imf:imfwpa:01/191", "RePEc:imf:imfwpa:01/191", "RePEc:imf:imfwpa:01/191", "RePEc:imf:imfwpa:01/191")
references <- c("RePEc:rio:texdis:400", "RePEc:fip:fednrp:9608", "RePEc:nbr:nberwo:1172", "RePEc:bla:ecnote:v:28:y:1999:i:3:p:335-355", "RePEc:imf:imfwpa:00/69", "RePEc:eee:jbfina:v:24:y:2000:i:1-2:p:203-227")
df <- data.frame(identifier, references)
我需要处理大约 180,000 个不同的文档。我想一旦我知道如何做一次,我就可以自己编写一个 for 循环,但是如果有人有聪明的方法来做到这一点,我将非常感谢您的建议。提前感谢您的帮助!
【问题讨论】:
-
在
html_nodes("text")之后添加%>% html_attr("ref"),你应该得到想要的文本
标签: r