[英]Loop multiple webpages in R
抱歉,這里可能涉及一個問題。 我正在嘗試重現位於此處的 NYTime Dialect Map Visualization的Hack Session。 一開始我還可以,但是當我嘗試對多個頁面進行換頁時遇到了問題。
為了使人們不必從幻燈片中復制信息,這是我到目前為止所要做的:
創建URL地址 :
mainURL <- 'http://www4.uwm.edu/FLL/linguistics/dialect/staticmaps/'
stateURL <- 'states.html'
url <- paste0(mainURL, stateURL)
下載並解析
tmp <- getURL(url)
tmp <- htmlTreeParse(tmp, useInternalNodes = TRUE)
提取頁面地址並保存到subURL
subURL <- unlist(xpathSApply(tmp, '//a[@href]', xmlAttrs))
刪除不是州名的頁面
subURL <- subURL[-(1:4)]
對我來說,問題開始於原始幻燈片24。 幻燈片說, 下一步是遍歷狀態列表並閱讀每個問題的正文。 當然,我們還需要在流程中保存每個狀態的名稱 。 循環使用以下代碼初始化:
survey <- vector(length(subURL), mode = "list")
i = 1
stateNames <- rep('', length(subURL))
在此代碼下,幻燈片表示survey
是一個列表,其中保存了有關每個州的信息 。 我對這種情況感到有些困惑,因為survey
確實是一個長度為51的列表,但是每個元素都是NULL。 我也對i
在這里所做的事情感到困惑(這在以后變得很重要)。 盡管如此,我仍然可以遵循代碼的工作方式,並且我認為列表將在以后填充。
這確實是我感到困惑的下一張幻燈片。 例如,以阿拉斯加為例,顯示URL如何包含每個州的名稱:
為第一個狀態創建URL並分配給suburl
suburl <- subURL[1]
從子網址中刪除state_
stateName <- gsub('state_','',suburl)
從stateName中刪除.html
stateName <- gsub('.html','',stateName)
到現在為止還挺好。 我可以針對每個州單獨執行此操作。 但是,我無法弄清楚如何將其變成適用於所有狀態的循環。 幻燈片僅包含以下代碼:
stateNames[i] <- stateName
這就是我卡住的地方。 上一張幻燈片將1分配給i
,因此唯一要做的就是獲取阿拉斯加(AK)的名稱,但其他所有元素均為“”(正如先前所期望的stateNames
所定義的那樣)。
我確實嘗試了以下方法:
stateNames <- gsub('state_','',subURL)
stateNames <-gsub('.html','',stateNames)
這並不完全有效,因為此向量的長度為51,但是上面顯示的向量的長度僅為1。(稍后,我希望每個州都有自己的名稱,而不是讓所有州都具有相同的名稱51個州名)。 而且,我不知道如何使用stateNames(i) <- stateName
命令。
無論如何,我一直堅持到最后(包括原始內容和修改內容),希望事情最終能夠解決問題(有時我得到的內容與演示文稿中的內容相同),但最終事情還是崩潰了。 我認為稍后在幻燈片中還會有另一個問題(對象的子集以前是不存在的),但是我想問題也很容易出現。
無論如何,我知道這是一個涉及很深的問題,因此,如果這不適合該網站,我深表歉意。 我只是被困住了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.