语句拼接_第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.mzph.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…