語句拼接_第2課:一個周末學會R語言數據處理:表拆分和拼接

28c9c965dafa7316c5793f3e2b8dc34e.png
  • 從一線收集了兩百個文件,要整合到一起?總部一張全國兩百個城市的匯總表,拆成兩百個小文件?開什么玩笑,難道要復制粘貼到天荒地老。。。
  • 不用這么麻煩,一個循環,一個語句,實現快速表拆分和表拼接,從此告別復制粘貼

本節測試數據:鏈家上海小區測試數據 提取碼:9172

7402a29c5cb1b8b0cddafa30c0b69829.png
類似北蔡這樣的商圈總共有215個

上海215個商圈,每個拆分成一個文件,怎么操作?

一、dplyr包之filter操作

#讀取文件數據
#install.packages('readr')
library(readr)
file <- readr::read_csv("D:/從0到1學習數據科學/xiaoqu.csv",locale = locale(encoding = "GB18030"))
#提取商圈不同的商圈
biz_circle <- unique(file$xiaoqu_bizcircle)#用dplyr包的filter操作循環拆分數據
#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學習數據科學/拆分文件/',file_name,sep = '')#過濾操作,注意%>%為管道符號file_bizcircle <- file %>% filter(xiaoqu_bizcircle == circle)#寫文件write_csv(file_bizcircle,file_path)
}
end_time <- Sys.time()#測試一下拆表運行時間
print(end_time - begin_time)

step 1:讀取文件,不明之處可看課程 表快速讀取

step 2:unique函數獲取文件中商圈的不同值

4f8fe34aceff33006301b1b90d728d23.png
unique函數獲取文件中商圈的不同值

step 3:for循環,循環中的circle為之前unique函數獲取到的不同商圈名稱

step 4:paste函數拼接文件名以及文件路徑名

將字符串拼接,sep表示拼接時的連接符,默認為空格

舉例:

輸入:file_name = paste('北蔡','.csv',sep = '')

輸出file_name:'北蔡.csv'

step 5:filter函數過濾出不同商圈的小區

file %>% filter(xiaoqu_bizcircle == circle)

等價于

filter(file, xiaoqu_bizcircle == circle)

step 6:我們來看下運行結果

061373276c531f5cac9604102850762f.png
拆分了215個項目

step 7:看下總的運行時間,用了0.58秒

40f80bcbcee6f66fb248e05015a59df7.png
運行時間,0.58秒

一線有200張小表,要拼接成一張大表,怎么操作?

二、rbind操作數據合并

#獲取文件夾中的文件名
fileName <- dir('D:/從0到1學習數據科學/拆分文件/')
#拼接文件路徑
file_path <- paste('D:/從0到1學習數據科學/拆分文件/',fileName,sep = '')#循環讀入
file_conbind <- data_frame()
for (path in file_path) {file_bizcircle <- read_csv(path)#rbind拼接數據file_conbind <- rbind(file_conbind,file_bizcircle)
}

step 1:dir()函數獲取文件夾中的所有文件名

step 2:通過paste()函數拼接文件的讀取地址

step 3:for循環,path為file_path中的每一個文件地址

step 4:rbind()函數拼接數據,獲得最終的結果

7be311c579b1d11a977a1e7374352910.png
拼接后的數據和原文件一樣

結束語:filter和rbind操作使用起來很簡單,但它們能解決的問題卻很大,工作中經常會需要拆表和合并表操作,如果用復制黏貼,可能需要耗費一天的時間,通過短短的幾行代碼,就可以在一秒內就處理完所需的工作量。


數據處理課程:

有馬駿:第0課:一個周末學會R語言數據處理:從數據庫到數倉再到數據集市?zhuanlan.zhihu.com
7001eaf761d231f95e2f95bc8c4acdb5.png
有馬駿:第1課:一個周末學會R語言數據處理:表快速讀取?zhuanlan.zhihu.com
7001eaf761d231f95e2f95bc8c4acdb5.png

數據采集課程:

有馬駿:第0課:一個周末學會R語言數據采集:數據從哪里來??zhuanlan.zhihu.com
dceb684a873a39d0d154628e6d1535b1.png
有馬駿:第1課:一個周末學會R語言數據采集:爬蟲介紹?zhuanlan.zhihu.com
83d6a2722c97c18740310a8c9d6ed415.png
有馬駿:第2課:一個周末學會R語言數據采集:R爬蟲環境安裝?zhuanlan.zhihu.com
83d6a2722c97c18740310a8c9d6ed415.png
有馬駿:第3課:一個周末學會R語言數據采集:XPath基礎?zhuanlan.zhihu.com
83d6a2722c97c18740310a8c9d6ed415.png
有馬駿:第4課:一個周末學會R語言數據采集: Selenium常用操作?zhuanlan.zhihu.com
83d6a2722c97c18740310a8c9d6ed415.png
有馬駿:第5課:一個周末學會R語言數據采集:正則表達式入門?zhuanlan.zhihu.com
83d6a2722c97c18740310a8c9d6ed415.png
有馬駿:第6課:一個周末學會R語言數據采集:爬取鏈家小區數據?zhuanlan.zhihu.com
83d6a2722c97c18740310a8c9d6ed415.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541570.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Anaconda配置多spyder多python環境

作者&#xff1a;桂。 時間&#xff1a;2017-04-17 22:02:37 鏈接&#xff1a;http://www.cnblogs.com/xingshansi/p/6725298.html 前言 最近在看《統計學習方法》&#xff0c;打算配合《機器學習實戰》一起&#xff0c;可后者的代碼是基于python2.6的&#xff1a; All the co…

pytorch自定義新層demo_從頭學pytorch(十一):自定義層

自定義layer不含模型參數的layer含模型參數的layer核心都一樣,自定義一個繼承自nn.Module的類,在類的forward函數里實現該layer的計算,不同的是,帶參數的layer需要用到nn.Parameter不含模型參數的layer直接繼承nn.Moduleimport torchfrom torch import nnclass CenteredLayer(n…

java日歷類add方法_Java日歷computeTime()方法及示例

java日歷類add方法日歷類computeTime()方法 (Calendar Class computeTime() method) computeTime() method is available in java.util package. java.util包中提供了computeTime()方法 。 computeTime() method is for conversion of current field values to the ms(millisec…

C++——智能指針和RAII

該文章代碼均在gitee中開源 C智能指針hpphttps://gitee.com/Ehundred/cpp-knowledge-points/tree/master/%E6%99%BA%E8%83%BD%E6%8C%87%E9%92%88??????? 智能指針 傳統指針的問題 在C自定義類型中&#xff0c;我們為了避免內存泄漏&#xff0c;會采用析構函數的方法釋…

移除元素所有事件監聽_DOM 事件模型或 DOM 事件機制

DOM 事件模型DOM 的事件操作&#xff08;監聽和觸發&#xff09;&#xff0c;都定義在EventTarget接口。所有節點對象都部署了這個接口&#xff0c;其他一些需要事件通信的瀏覽器內置對象&#xff08;比如&#xff0c;XMLHttpRequest、AudioNode、AudioContext&#xff09;也部…

gettimezone_Java日歷getTimeZone()方法與示例

gettimezone日歷類的getTimeZone()方法 (Calendar Class getTimeZone() method) getTimeZone() method is available in java.util package. getTimeZone()方法在java.util包中可用。 getTimeZone() method is used to return this Calendar time zone. getTimeZone()方法用于返…

cass展點不在原位置_cass展點之步驟及方法

cass展點之步驟及方法cass展點是根據手工或坐標正反算軟件自動計算的結果&#xff0c;利用cass軟件將點號、坐標及其高程自動展示到圖紙上的一種方法。其基本步驟和方法如下&#xff1a;一、將井下測點的點號、以及計算好的Y坐標、X坐標、及高程由sheet1復制并粘貼到sheet2上面…

Java BufferedWriter close()方法與示例

BufferedWriter類close()方法 (BufferedWriter Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to flushes the characters from the stream and later will close it by using close() metho…

ISCC2014-reverse

這是我做reverse的題解。在咱逆向之路上的mark一下&#xff0c;&#xff0c;水平有限&#xff0c;大牛見笑。題目及題解鏈接&#xff1a;http://pan.baidu.com/s/1gd3k2RL 宗女齊姜 果然是僅僅有50分的難度&#xff0c;OD直接找到了flag. 找到殺手 這題用OD做非常麻煩。我改用I…

python 獲取當前時間再往前幾個月_Python 中的時間和日期操作

Python中,對日期和時間的操作,主要使用這3個內置模塊: datetime 、 time 和 calendar 獲取當前時間對應的數字 開發程序時,經常需要獲取兩個代碼位置在執行時的時間差,比如,我們想知道某個函數執行大概耗費了多少時間,就可以使用time.time()來做。 import time before =…

Java BigDecimal restder()方法與示例

BigDecimal類的restder()方法 (BigDecimal Class remainder() method) Syntax: 句法&#xff1a; public BigDecimal remainder(BigDecimal divsr);public BigDecimal remainder(BigDecimal divsr, MathContext ma_co);remainder() method is available in java.math package.…

python程序需要編譯么_python需要編譯么

一個經常聽見的問題&#xff0c;那就是&#xff1a;Python是解釋型的語言嗎&#xff1f;它會被編譯嗎&#xff1f;這個問題沒有想象中那么好回答。和很多人認識世界一樣&#xff0c;習慣以一個簡單的模型去評判一些事物。而事實上&#xff0c;里面包含了很多很多的細節。通常的…

DevOps平臺中的自動化部署框架設計

本文目錄&#xff1a; 一、背景 二、我們的需求是什么&#xff1f; 三、概念澄清 四、概念模型 五、總體設計 六、關鍵點設計 七、總結 一、背景 說到自動化部署&#xff0c;大家肯定都會想到一些配置管理工具&#xff0c;像ansible,chef,puppet, saltstack等等。雖然這些工具給…

插入排序算法 ,遞歸實現_C程序實現遞歸插入排序

插入排序算法 ,遞歸實現The only difference between Insertion sort and Recursive Insertion Sort is that in the Recursive method, we start from placing the last element in its correct position in the sorted array instead of starting from the first. 插入排序和…

python虛擬機直接加載字節碼運行程序_第二章 python如何運行程序

一.python解釋器介紹Python解釋器是一種讓程序運行起來的程序。實際上&#xff0c;解釋器是代碼與機器的計算機硬件之間的軟件邏輯層。當Python包安裝在機器上后&#xff0c;它包含了一些最小化的組件&#xff1a;一個解釋器和支持的庫。二.python的視角當Python運行腳本時&…

Java LocalDate類| 帶示例的format()方法

LocalDate類format()方法 (LocalDate Class format() method) format() method is available in java.time package. format()方法在java.time包中可用。 format() method is used to format this LocalDate object by using the given DateTimeFormatter object. format()方法…

胃癌2019csco指南_2019 CSCO胃癌診療指南精華來了!

一文輕松get 2019 CSCO胃癌診療指南更新要點&#xff01;文丨青青子衿 中山大學腫瘤防治中心來源丨醫學界腫瘤頻道近日&#xff0c;2019年CSCO指南發布會于南京召開。今天為大家推送的是2019 CSCO胃癌診療指南的最新更新&#xff0c;在發布專場中&#xff0c;來自華中科技大學同…

001_docker-compose構建elk環境

由于打算給同事分享elk相關的東西,搭建配置elk環境太麻煩了,于是想到了docker。docker官方提供了docker-compose編排工具,elk集群一鍵就可以搞定,真是興奮。好了下面咱們開始吧。 一、 https://github.com/deviantony/docker-elk $ cd /006_xxxallproject/005_docker/001_e…

Java即時類| toString()方法與示例

即時類toString()方法 (Instant Class toString() method) toString() method is available in java.time package. toString()方法在java.time包中可用。 toString() method is used to represent this Instant as a String by using the standards ISO-8601 format. toString…

learn opengl 中文_LearnOpenGL CN

歡迎來到OpenGL的世界歡迎來到OpenGL的世界。這個工程只是我(Joey de Vries)的一次小小的嘗試&#xff0c;希望能夠建立起一個完善的OpenGL教學平臺。無論你學習OpenGL是為了學業&#xff0c;找工作&#xff0c;或僅僅是因為興趣&#xff0c;這個網站都將能夠教會你現代(Core-p…