91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言如何獲取數據

發布時間:2022-03-28 10:23:30 來源:億速云 閱讀:627 作者:iii 欄目:大數據

這篇文章主要講解了“R語言如何獲取數據”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“R語言如何獲取數據”吧!

今天只分享數據獲取的代碼,為了顯得項目規范性(其實就是裝X),我第一次使用了Rstudio中的Create Projects菜單創建了本地項目倉庫(以前寫R代碼太飄逸了,寫的龍飛鳳舞,完全不顧及別人能不能看懂,以后不可以這樣了,因為工作中已經吃過很大虧了)。

R語言如何獲取數據

因為是含有二級列表頁,所以第一步的想法自然是先爬取年份鏈接,然后遍歷鏈接抓取每一年份中的文檔。

可能因為自己文科生思維的問題,不太習慣直接寫雙層for循環(因為看到會不適),所以遇到這種需要二次遍歷的,我一般都會拆成兩個小步驟去進行:

1、遍歷年份對應的對應年政府工作報告主頁鏈接:

## !/user/bin/env RStudio 1.1.423
## -*- coding: utf-8 -*-
## Pages_links Acquisition
## 加載必要的安裝包:
library("rvest")
library("stringr")
library("Rwordseg")
library("wordcloud2")
library("dplyr")
#主網址
url <- "http://www.gov.cn/guowuyuan/baogao.htm"
#提取二級鏈接
txt<-read_html(url) %>%     html_nodes("#history_report") %>%     html_nodes("p") %>%     html_text()
#提取年份&鏈接信息:
Base <- read_html(url) %>% html_nodes("div.history_report") %>% html_nodes("a") Year  <- Base %>% html_text(trim = TRUE) %>% as.numeric() Links <- Base %>% html_nodes("a") %>% html_attr("href") %>% str_trim("both")
#合并成數據框:

Reports_links <- data.frame(  Year = Year,  Links = Links,  stringsAsFactors = FALSE )
#存放到本地目錄中

if (!dir.exists("data")){  dir.create("data")  write.csv(  Reports_links,  "./data/Reports_links.csv",  row.names=FALSE  )   }

R語言如何獲取數據

以上代碼為了便于理解,我都拆成單句展示了,github中代碼都會是封裝好的模塊化函數。

R語言如何獲取數據

2、從每一個年份對應的鏈接中獲取整個政府工作報告的文檔文本:

#加載包

library("rvest")
library("dplyr")
library("magrittr")
library("doParallel")      
library("foreach")
#讀取年份及對應鏈接

Links_data <- read.csv("./data/Reports_links.csv",stringsAsFactors = FALSE) %>% arrange(Year)
#創建文檔提取函數:

Get_Corpus_Report <- function(i){  url = grep(i,Links_data$Year) %>% Links_data$Links[.]  read_html(url) %>%    html_nodes("td.p1,tr > td,div.pages_content") %>%    html_text("both") %>%    cat(file = sprintf("./data/Corpus/%d.txt",i))  }

以上需用到較為基礎的CSS表達式配色rvest來提取文檔,如果你還不太了解這塊的內容,趕快通過菜單中的網絡數據獲取筆記來惡補。

沒有構造循環,這里用了foreach包提供的多進程并行爬取方案來處理多循環問題(雖然這里的量級還體現不出來并行的優勢,但是整體代碼要比寫循環簡介、高效)

system.time({
 if (!dir.exists("./data/Corpus")){    dir.create("./data/Corpus")  }  cl<- makeCluster(4)        registerDoParallel(cl)      tryCatch({    foreach(      i= Links_data$Year,        .combine = c,      .packages = c("rvest","magrittr")    ) %dopar% Get_Corpus_Report(i)  },  error = function(e) {    print(e)  },  finally = stopCluster(cl)  ) })

R語言如何獲取數據

R語言如何獲取數據

感謝各位的閱讀,以上就是“R語言如何獲取數據”的內容了,經過本文的學習后,相信大家對R語言如何獲取數據這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南江县| 蒙城县| 得荣县| 辽源市| 瑞昌市| 舟山市| 措美县| 额尔古纳市| 荣成市| 瓦房店市| 清新县| 辰溪县| 萝北县| 隆昌县| 漠河县| 洛宁县| 武定县| 巴里| 朝阳市| 梧州市| 镇原县| 榆林市| 馆陶县| 泊头市| 运城市| 丹东市| 海安县| 铁力市| 敦煌市| 剑阁县| 马鞍山市| 衡水市| 长武县| 花垣县| 万年县| 镶黄旗| 九寨沟县| 潍坊市| 潞西市| 金乡县| 邢台市|