我有一系列链接到处方药标签的数千个 URL,并试图找出有多少有患者包装插页。我试图通过读取数据框中的 URL,然后使用 XML 包来解析 html,并最终使用 grep 来执行我对字符串“Patient Package Insert”的搜索。最终,我试图计算带有患者包装插页的处方药标签的数量。
我在下面整理了一个玩具示例:
library(XML)
urls <- c("http://dailymed.nlm.nih.gov/dailymed/lookup.cfm?setid=a002b40c-097d-47a5-957f-7a7b1807af7f",
"http://dailymed.nlm.nih.gov/dailymed/lookup.cfm?setid=1842bb9f-60ab-4af9-95a4-1cfc3645ee6b",
"http://dailymed.nlm.nih.gov/dailymed/lookup.cfm?ndc=50419-758&start=1&labeltype=all")
Data <- data.frame(urls)
Data$insert <- lapply(Data$urls, function(x) {
y <- xmlToList(htmlParse(x))
y.flat <- unlist(y, recursive = TRUE)
length(grep("Patient Package Insert", c(y.flat,names(y.flat))))
})
Data <- as.data.frame(lapply(Data, unlist))
count(Data$insert)
目前,这正在获取每个网页中包含的“患者包裹插页”链接,但只有其中一些是活动的。例如,上面玩具示例中包含的第二个和第三个 URL 没有指向“患者包装插页”的活动链接(它是灰色的),我不想将其计入我的最终表格中。理想情况下,我只想标记第一个链接,其中包括一个功能性的“患者包裹插入”链接。有谁知道如何最好地在 R 中做到这一点?如果是这样,我将不胜感激任何和所有的帮助。
非常感谢,
克里斯