语句拼接_第2课:一个周末学会R语言数据处理:表拆分和拼接
- 從一線收集了兩百個(gè)文件,要整合到一起?總部一張全國(guó)兩百個(gè)城市的匯總表,拆成兩百個(gè)小文件?開(kāi)什么玩笑,難道要復(fù)制粘貼到天荒地老。。。
- 不用這么麻煩,一個(gè)循環(huán),一個(gè)語(yǔ)句,實(shí)現(xiàn)快速表拆分和表拼接,從此告別復(fù)制粘貼
本節(jié)測(cè)試數(shù)據(jù):鏈家上海小區(qū)測(cè)試數(shù)據(jù) 提取碼:9172
類似北蔡這樣的商圈總共有215個(gè)上海215個(gè)商圈,每個(gè)拆分成一個(gè)文件,怎么操作?
一、dplyr包之filter操作
#讀取文件數(shù)據(jù) #install.packages('readr') library(readr) file <- readr::read_csv("D:/從0到1學(xué)習(xí)數(shù)據(jù)科學(xué)/xiaoqu.csv",locale = locale(encoding = "GB18030")) #提取商圈不同的商圈 biz_circle <- unique(file$xiaoqu_bizcircle)#用dplyr包的filter操作循環(huán)拆分?jǐn)?shù)據(jù) #install.packages('dplyr') library(dplyr) begin_time <- Sys.time() for (circle in biz_circle) {#拼接文件名和文件路徑file_name = paste(circle,'.csv',sep = '')file_path = paste('D:/從0到1學(xué)習(xí)數(shù)據(jù)科學(xué)/拆分文件/',file_name,sep = '')#過(guò)濾操作,注意%>%為管道符號(hào)file_bizcircle <- file %>% filter(xiaoqu_bizcircle == circle)#寫(xiě)文件write_csv(file_bizcircle,file_path) } end_time <- Sys.time()#測(cè)試一下拆表運(yùn)行時(shí)間 print(end_time - begin_time)step 1:讀取文件,不明之處可看課程 表快速讀取
step 2:unique函數(shù)獲取文件中商圈的不同值
unique函數(shù)獲取文件中商圈的不同值step 3:for循環(huán),循環(huán)中的circle為之前unique函數(shù)獲取到的不同商圈名稱
step 4:paste函數(shù)拼接文件名以及文件路徑名
將字符串拼接,sep表示拼接時(shí)的連接符,默認(rèn)為空格
舉例:
輸入:file_name = paste('北蔡','.csv',sep = '')
輸出file_name:'北蔡.csv'
step 5:filter函數(shù)過(guò)濾出不同商圈的小區(qū)
file %>% filter(xiaoqu_bizcircle == circle)
等價(jià)于
filter(file, xiaoqu_bizcircle == circle)
step 6:我們來(lái)看下運(yùn)行結(jié)果
拆分了215個(gè)項(xiàng)目step 7:看下總的運(yùn)行時(shí)間,用了0.58秒
運(yùn)行時(shí)間,0.58秒一線有200張小表,要拼接成一張大表,怎么操作?
二、rbind操作數(shù)據(jù)合并
#獲取文件夾中的文件名 fileName <- dir('D:/從0到1學(xué)習(xí)數(shù)據(jù)科學(xué)/拆分文件/') #拼接文件路徑 file_path <- paste('D:/從0到1學(xué)習(xí)數(shù)據(jù)科學(xué)/拆分文件/',fileName,sep = '')#循環(huán)讀入 file_conbind <- data_frame() for (path in file_path) {file_bizcircle <- read_csv(path)#rbind拼接數(shù)據(jù)file_conbind <- rbind(file_conbind,file_bizcircle) }step 1:dir()函數(shù)獲取文件夾中的所有文件名
step 2:通過(guò)paste()函數(shù)拼接文件的讀取地址
step 3:for循環(huán),path為file_path中的每一個(gè)文件地址
step 4:rbind()函數(shù)拼接數(shù)據(jù),獲得最終的結(jié)果
拼接后的數(shù)據(jù)和原文件一樣結(jié)束語(yǔ):filter和rbind操作使用起來(lái)很簡(jiǎn)單,但它們能解決的問(wèn)題卻很大,工作中經(jīng)常會(huì)需要拆表和合并表操作,如果用復(fù)制黏貼,可能需要耗費(fèi)一天的時(shí)間,通過(guò)短短的幾行代碼,就可以在一秒內(nèi)就處理完所需的工作量。
數(shù)據(jù)處理課程:
數(shù)據(jù)采集課程:
有馬駿:第0課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集:數(shù)據(jù)從哪里來(lái)??zhuanlan.zhihu.com有馬駿:第1課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集:爬蟲(chóng)介紹?zhuanlan.zhihu.com有馬駿:第2課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集:R爬蟲(chóng)環(huán)境安裝?zhuanlan.zhihu.com有馬駿:第3課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集:XPath基礎(chǔ)?zhuanlan.zhihu.com有馬駿:第4課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集: Selenium常用操作?zhuanlan.zhihu.com有馬駿:第5課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集:正則表達(dá)式入門(mén)?zhuanlan.zhihu.com有馬駿:第6課:一個(gè)周末學(xué)會(huì)R語(yǔ)言數(shù)據(jù)采集:爬取鏈家小區(qū)數(shù)據(jù)?zhuanlan.zhihu.com總結(jié)
以上是生活随笔為你收集整理的语句拼接_第2课:一个周末学会R语言数据处理:表拆分和拼接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux udp 端口 抓包,tcpd
- 下一篇: 容器性能比无容器服务器,【译】容器 vs