Re: [問題] 用data.frame中的某個column擷取網頁資料
假設你有一個 data frame 叫 x,其中有一個欄叫 id。因此,
myURL <- paste("http://www.ncbi.nlm.nih.gov/gene/", x$id, sep="")
就是所有要去拿取的完整網址。
以下一個為你設計的 function 先餵 R 吃下去。
它可以一次拿取一個網頁裡你要的資料。
myfunc <- function(myURL){
con <- url(myURL)
txt <- scan(con, what="character")
close(con)
txt1 <- paste(txt, sep="", collapse=" ")
pattern <- "<dt>Summary</dt> <dd>[[:print:]]+</dd>"
re <- regexpr(pattern, txt1)
start <- re[1]
end <- start[1] + attr(regexpr(pattern, txt1),"match.length") - 1
return(substr(txt1, start + 22, end - 5))
}
再試試看
myfunc("http://www.ncbi.nlm.nih.gov/gene/2597")
的結果是不是你要的。有需要的話自己修一下。
可以的話,就用迴圈把 myURL 一個一個丟給 myfunc()
results <- list()
for(i in 1:length(myURL)){
results[[i]] <- myfunc(myURL[i])
}
這樣應該就好了。
: 各位好
: 我需要下載數百個基因的資料
: 網址的格式是:
: http://www.ncbi.nlm.nih.gov/gene/XXXX
: 其中XXXX是這些基因的ID(可能是四個數字或更多)
: 比如GAPDH ID是2597
: 那連結就是:http://www.ncbi.nlm.nih.gov/gene/2597
: 如果我的data frame中有一個column是這些IDs
: 我應該如何寫出簡單的R scripts來擷取這些網頁中的"Summary"中的敘述
: 並加到原本data.frame中相對應rows 形成一個新的column (不包括"Summary"這字本身)
: 例如對GAPDH而言就是
: "This gene encodes ... variants. [provided by RefSeq, Jan 2014]"
: 我想應該是用Rcurl跟grep
: 但因為完全外行
: 不知道如何逐個ID數值加到Rcurl網址的最後
: 再將下載的網頁以grep搜尋到的strings加到對應的rows裡
: 這樣的問題很不專業
: 如果有任何的提示都歡迎
: 謝謝各位專家
: [程式範例]:
: [關鍵字]: R 網頁下載 部分擷取
--
http://apansharing.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.37.172
推
02/04 12:28, , 1F
02/04 12:28, 1F
→
02/04 12:28, , 2F
02/04 12:28, 2F
推
02/04 12:44, , 3F
02/04 12:44, 3F
推
02/04 12:47, , 4F
02/04 12:47, 4F
→
02/04 12:47, , 5F
02/04 12:47, 5F
推
02/04 14:21, , 6F
02/04 14:21, 6F
推
02/04 15:02, , 7F
02/04 15:02, 7F
→
02/04 20:40, , 8F
02/04 20:40, 8F
→
02/04 20:41, , 9F
02/04 20:41, 9F
→
02/04 20:41, , 10F
02/04 20:41, 10F
→
02/04 20:42, , 11F
02/04 20:42, 11F
→
02/04 20:43, , 12F
02/04 20:43, 12F
※ 編輯: andrew43 來自: 122.117.37.172 (02/04 20:43)
推
02/05 13:20, , 13F
02/05 13:20, 13F
→
02/05 13:22, , 14F
02/05 13:22, 14F
→
02/05 13:23, , 15F
02/05 13:23, 15F
→
02/05 13:25, , 16F
02/05 13:25, 16F
推
02/05 13:44, , 17F
02/05 13:44, 17F
→
02/05 13:46, , 18F
02/05 13:46, 18F
→
02/05 13:53, , 19F
02/05 13:53, 19F
→
02/05 13:53, , 20F
02/05 13:53, 20F
→
02/05 13:55, , 21F
02/05 13:55, 21F
→
02/05 13:55, , 22F
02/05 13:55, 22F
推
02/05 14:25, , 23F
02/05 14:25, 23F
→
02/05 14:26, , 24F
02/05 14:26, 24F
→
02/06 16:34, , 25F
02/06 16:34, 25F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章