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

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;也部…

ISCC2014-reverse

这是我做reverse的题解。在咱逆向之路上的mark一下&#xff0c;&#xff0c;水平有限&#xff0c;大牛见笑。题目及题解链接&#xff1a;http://pan.baidu.com/s/1gd3k2RL 宗女齐姜 果然是仅仅有50分的难度&#xff0c;OD直接找到了flag. 找到杀手 这题用OD做非常麻烦。我改用I…

DevOps平台中的自动化部署框架设计

本文目录&#xff1a; 一、背景 二、我们的需求是什么&#xff1f; 三、概念澄清 四、概念模型 五、总体设计 六、关键点设计 七、总结 一、背景 说到自动化部署&#xff0c;大家肯定都会想到一些配置管理工具&#xff0c;像ansible,chef,puppet, saltstack等等。虽然这些工具给…

胃癌2019csco指南_2019 CSCO胃癌诊疗指南精华来了!

一文轻松get 2019 CSCO胃癌诊疗指南更新要点&#xff01;文丨青青子衿 中山大学肿瘤防治中心来源丨医学界肿瘤频道近日&#xff0c;2019年CSCO指南发布会于南京召开。今天为大家推送的是2019 CSCO胃癌诊疗指南的最新更新&#xff0c;在发布专场中&#xff0c;来自华中科技大学同…

learn opengl 中文_LearnOpenGL CN

欢迎来到OpenGL的世界欢迎来到OpenGL的世界。这个工程只是我(Joey de Vries)的一次小小的尝试&#xff0c;希望能够建立起一个完善的OpenGL教学平台。无论你学习OpenGL是为了学业&#xff0c;找工作&#xff0c;或仅仅是因为兴趣&#xff0c;这个网站都将能够教会你现代(Core-p…

MYSQL5.7 日志管理

2019独角兽企业重金招聘Python工程师标准>>> 慢查询日志slow-query-log1 slow-query-log-filefile_name long_query_time1 #SQL执行多长时间以上会记录到慢查询日志&#xff0c;0~10s log_slow_admin_statementsOFF #在写入慢查询日志的语句中包含缓慢的管理语句。 …

cad导出 dxf后中文不显示_CAD快速看图 for Mac

CAD快速看图 for Mac是一款非常小巧、快速、方便的DWG看图工具&#xff0c;CAD快速看图 Mac版可脱离AutoCAD最快速、最方便浏览DWG和DXF图纸&#xff0c;支持二维或三维图纸&#xff0c;支持高清、多文件和云字体&#xff0c;非常实用的一款CAD看图软件&#xff0c;CAD快速看图…

关于java.util.ConcurrentModificationException和remove倒数第二个元素

2019独角兽企业重金招聘Python工程师标准>>> 首先是两段代码的执行结果&#xff1a; 代码一&#xff1a; public class TestListRemove {public static void main(String[] args) {List<Integer> list new ArrayList<Integer>();list.add(1);list.add(…

怎么删除mysql的压缩包_压缩包版mysql怎么卸载

MySQL是一个小巧玲珑但功能强大的数据库&#xff0c;目前十分流行。但是官网给出的安装包有两种格式&#xff0c;一个是msi格式&#xff0c;一个是zip格式的。那么压缩版mysql要怎么卸载&#xff1f;下面本篇文章就来大家介绍一下&#xff0c;希望对你们有所帮助。卸载压缩包版…

lambda表达式之进化

前言在C#我们可以自定义委托&#xff0c;但是C#为什么还要内置泛型委托呢&#xff1f;因为我们常常要使用委托&#xff0c;如果系统内置了一些你可能会用到的委托&#xff0c;那么就省去了定义委托&#xff0c;然后实例化委托的步骤&#xff0c;这样一来既使代码看起来简洁而干…

mysql返回行数_如何计算MySQL查询返回的行数?

How can I count the number of rows that a MySQL query returned?解决方案Getting total rows in a query result...You could just iterate the result and count them. You dont say what language or client library you are using, but the API does provide a mysql_nu…

md5不是对称密码算法_密码学中的消息摘要算法5(MD5)

md5不是对称密码算法In cryptography, MD5 (Message-Digest algorithm 5) is a mainly used cryptographic hash function with a 128-bit hash value. As we use in an Internet standard (RFC 1321), MD5 has been employed or developed in a more variety of security appl…

Windows 7 SID 修改

在安裝Windows系統時會產生一個獨一無二的SID (Security ID)&#xff0c;它用來識別每一部主機&#xff0c;若在同一個區域網路內有兩部相同SID的主機&#xff0c;會出現警告訊息。一般而言&#xff0c;每次安裝時的SID不可能會發生重複&#xff0c;但若是使用TrueImage或Ghost…

1 并发模型

并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业&#xff0c;同时线程间的协作和交互方式也不相同。这篇并发模型教程将会较深入地介绍目前&#xff08;2015年&#xff0c;本文…

mysql log4jlogger_mybatis结合log4j打印SQL日志

mybatis结合log4j打印SQL日志1.Maven引用jar包默认的mybatis不能打印出SQL日志&#xff0c;不便于查看调试&#xff0c;须要结合log4jdbc-log4j2就能够完整的输入SQL的调试信息。pom.xml 配置maven。注意以下3个都须要org.bgee.log4jdbc-log4j2log4jdbc-log4j2-jdbc4.11.16org.…

cellpadding_在CSS中设置cellpadding和cellspacing

cellpaddingIntroduction: 介绍&#xff1a; It is not unknown anymore that now and then we make use of tables in our web page or website, therefore we all are familiar with how to create tables or grids in our website or web page but there are times when we…

mongodb 排序_技术分享 | MongoDB 一次排序超过内存限制的排查

本文目录&#xff1a;一、背景1. 配置参数检查2. 排序字段是否存在索引二、测试环境模拟索引对排序的影响1. 测试环境信息2. 报错语句的执行计划解释 3. 建立新的组合索引进行测试三、引申的组合索引问题1. 查询语句中&#xff0c;排序字段 _id 使用降序2. 查询语句中&#xff…

spark源码分析之Executor启动与任务提交篇

任务提交流程 概述 在阐明了Spark的Master的启动流程与Worker启动流程。接下继续执行的就是Worker上的Executor进程了&#xff0c;本文继续分析整个Executor的启动与任务提交流程Spark-submit 提交一个任务到集群通过的是Spark-submit通过启动脚本的方式启动它的主类&#xff0…