- ?
R学习笔记系列—R语言从文本和Excel文件中读取数据
房煜城
展开
1.4.1 从文本文件中导入数据
可以使用 read.table() 函数从带分隔符的文本文件中导入数。调用格式为:
这个函数看上去很复杂,但其实很多参数在使用时不用明确指出来,使用默认值可以满足绝大部分情况,因此实际使用还是比较简单的,下面我们简单介绍一下参数含义。
file: 字符型,文件名称,要从中读取文件的完整路径。
header: 逻辑型,指定是否在首行包含变量名,默认为 FALSE。
sep: 字符型,分割字符,默认为"",代表空白字符,包括空格(一个或多个)、制表符、 换行符、回车
dec: 字符型,指定小数点字符,默认为".",一般不用修改。
numerals: 字符型,在数字转换会损失精度时的处理方法,allow.loss 表示允许精度损失;warn.loss 允许精度损失,但显示一条警告信息;no.loss 不允许精度损失,即转换为数字,而是转换为因子或者不转换,保留字符串形式。
row.names 字符向量,为行指定名称。
col.names 字符向量,为列指定名称,若列名在第一行定义好了,可不用。
stringAsFactors: 逻辑型,是否将字符串自动编码为因子,默认为 TRUE。
na.strings: 字符向量,定义代表缺失值的字符串,比如c("N",".")会将 "N" 和"." 两个字符读取为缺失值,默认为 "NA"。
colClasses: 字符向量为列指定类型,比如c("numeric","character")指定第一列为数值型,第二列为字符型,若将某列指定为字符串,则不会将其自动编码为因子。
nrows: 数值型,读取的最大行数,负数为不限制。
skip: 数值型,读取前跳过的行数。
check.names: 逻辑型,是否检查变量名在 R 中的有效性,默认为 TRUE。
fill: 逻辑型,是否自动填充空白值,若各变量行数不一致,是否为空白列添加空白值。
strip.white: 逻辑型,是否自动过滤掉字符型变量前后的空格。
comment.char: 字符型,注释字符,以此字符开头的行将被忽略。
blank.lines.skip 逻辑型,是否忽略空白行,默认为 TRUE。
allowEscapes: 逻辑型,是否处理 C 语言风格的转意符。
text: 字符型,直接指定要读取的字符串,此时 file 应该为空。
encoding: 字符型,输入文本的编码,若出现乱码,请尝试更改此选项。
fileEncoding: 字符型,文件编码,若出现乱码,请尝试更改此选项。
假定我们有一个文本文件,students.txt,记录了6个学生的性别、身高和体重情况,其内容如下:
那么我们可以用以下方式读取:
read.table() 是读取按行列组织的数据的基础方式,其它同类函数,比如 read.csv() 等其实是用特定的选项调用了 read.table() 函数。在 read.table() 函数时,应尽量注意以下几点。
1.建议明确地在首行定义变量名,并加上参数 header = TRUE。
2.默认的分隔符为"",可以用空格、制表符、换行符等空白字符分割内容,若非空白分割,则需明确指出。
3.字符型变量会被自动转换为因子型,在读大型文件时,将 stringsAsFactors 设置为 False,能加快读取速度。
4.默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。
5.read.table()会尽量为每个变量选择合适的数据类型,若你想明确指定请用colClasses,或者生成后根据需要修改。
6.若读中文时出现乱码,请尝试改变编码
1.4.2 从 Excel 表格中读取
从 Excel 里读取数据最简单的办法就是将 Excel 表格存储为以逗号分割的 csv 文件,然后用 read.csv() 函数读取。read.csv() 函数其实就是 read.table() 的定制版,其用法与 read.table() 基本一致。
若要直接读取 Excel 文件,则需安装专门的包,本书推荐 readxl 包。
readxl 中有若干读取 Excel 数据的函数,最常用的是 read.excel()。调用格式为:
path: 字符型,文件路径sheet: 字符型或数值型。若为字符型,则指定 Sheet 名;若为数值,则指定 Sheet 的位置;若不指定,默认第一个Sheetrange: 字符型或数值型,读取的单元格范围,比较复杂,请查看文档col_names: 逻辑型或字符型向量;若为逻辑型,则指定是否将第一行作为变量名;若为字符向量,则直接定义各列名col_types: 字符型向量,定义各列数据类型,比如c("numeric","character");若不指定,则自动匹配na: 字符型向量,指定读取为缺失值的字符串 ,默认情况下,会将空单元格读取为缺失值trim_ws: 逻辑型,是否自动过滤掉字符型变量前后的空白(空格、制表符、换行符skip: 数值型,读取前跳过的行数,因为空白的行会自动跳过,所以这是最小的被跳过的行数n_max: 数值型,最大读取行数guess_max: 数值型,猜测列类别时,检测的最大行数
假如,在 d 盘有一名为 students.xls 的 Excel 文件,你可以通过如下方式读取。
喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)
- ?
WPS Excel: 如何合并多个Excel文件
Costa
展开
合并多个表格文件,Excel中可以使用power query,WPS中可以使用数据透视表来完成,两者各有优缺点。
例如,有下面3个表格,表格的标题行中有部分内容相同。怎样合并这样的3个文件呢?
步骤1:将这3个文件存放到同一个文件夹下(很重要),随意打开一个文件(例如01.xlsx),再新建一个空白表格文件。
步骤2:在空白表格文件中,插入数据透视表,选择“使用多重合并计算区域”——“选定区域”——“创建单页字段”——“下一步”。
步骤3:用鼠标选取01.xlsx文件中所有的数据,点击“添加”,就会在“所有区域”看到该数据区域;接着一一选取其他文件区域。
文件很多的话,这一步也是很麻烦的。可以使用BAT命令先将文件重命名成类似的名字,这样选取了第一个表格数据之后,后面的数据就不需要打开表格选取,而是直接修改文件名字。每个表格中的数据不同,在添加区域时,可以将区域设置的大一些,例如使用“$1:$4”(表示表格前4行)。
步骤4:数据选取完毕,就可以点击“确认”键创建一个新的数据透视表,会看到如下的汇总结果。界面中部的数据就是各个文件中的原始数据。
步骤5:还可以将筛选器下的“页1”拖到行字段下,这样我们就会看到界面左侧有“项1”、“项2”和“项3”,分别对应步骤3所添加的文件啦。
步骤6:如果某个原始表格中的数据变更了,可以在汇总表格上右键一下,点击“刷新”,汇总表数据也会随之更新。
和Excel的Power Query相比:
1. Excel中操作更简单一些,不过也只有Excel2016以上的版本才支持。
2. Excel的power query合并表格文件时,要求每个表格中的工作表名称相同,列数也必须相同,否则合并后数据会有遗漏或差错;使用数据透视表则没有这个限制。
3. 如果表格中列标题相同、行标题不相同,使用Excel的power query则不能合并;使用数据透视表则可以合并。
4. 原始数据更新时,两者都可以同步更新。
5. 数据透视表合并原始数据的同时还能汇总数据。
谢谢阅读,欢迎点赞、评论、关注和点击头像。
- ?
EXCEL干货大讲堂丨几种Excel表格中的提取数据或者文本
小鲜鱼
展开
EXCEL狗们很多时候在进行EXCEL处理的时候,会遇到在身份证上提取生日,在一组数字与本文的字符串里提取数字或者文本。最常见的方法应该是写一大串函数吧,下面小编教大家几种快速提取数据的方法。
方法一:函数提取。函数:=TEXT(MID(A1,7,8),0000-00-00),进行提取生日,函数的解释为:提取身份证号码从第7位数字开始的8个数,数据的显示格式为0000-00-00。下面操作起来。
方法二:利用分列按钮进行提取。
方法三:重点介绍职场利器,Ctrl+E快速智能填充功能(EXCEL 2013版本以上)。需要借left,right,mid,len等等取数都可以通过一个快捷键Ctrl+E填充功能来实现,极大提高来工作效率。下面就开始操作起来。
①先手动输入前面两个生日
②选择填充的区域,注意需要将手输入的区域一起选择。然后Ctrl+E,就可以自动填充啦。是不是很简单啊
Ctrl+E快速智能填充功能,还可以用来提取字符串当中的文本或者数字。如下操作:
Ctrl+E快速智能填充功能,不但可以用来提取,还可以用来合并。如下操作:
- ?
西格马大数据:从复杂表格中提取想要的信息
微仰
展开
转载自百家号作者:潮流数码玩家mp
在学校或者公司中,常常遇到需要从多个含各种信息的同类型表格里面,提取出我们想要的信息,很多小白只会盲目地打开一个又一个表格,复制粘贴到一个表格上,表格少或者信息少还好操作,但遇到大量表格或者需要提取的信息多怎么办呐?
在避免使用Vlooup的情况下,我将使用EasyRefiner演示如何轻松提取!
工具/原料
EasyRefienr谷歌浏览器
方法/步骤
我们以多份同类型采购单为例,每份采购单都含有各种信息,而我们只需要汇总提取所有表格中的公司,联系人,电话和合同号。表格类型如图所示
登陆西格马大数据平台直接打开bigdata.cisdi目前支持微信登陆和公司邮箱注册登陆
点击上传项目,可以直接勾选所有需要提取信息的表格,成功后进入第二步骤。
首先可以检查一下,显示的表格是否与我们原本的数据相对应,确认无误后按照如图所示,点击左上角的关键信息提取就可以进行下一步提取操作了。
按照 公司 联系人 电话和合同号的顺序依次添加标签并且勾选,最后点击执行就自动提取了。
EasyRefiner会根据我们的表格类型不同,分为多类,我们只需要重复以上的步骤提取所有的,最后点击一键合并就可以合并到同一个表中了
最后点击右上角的下载文件,就可以保存到本地中了,是不是很轻松便捷呐!
- ?
合并多个Excel文件,不管什么版本的Excel或WPS都适用
寒烟
展开
昨日,分享了使用Power Query插件快速合并多个Excel的方法,可惜很多朋友表示还没用上Excel2016。所以,今天分享一个新方法,不管什么版本的Excel,或者WPS表格,都适用。
实例
将一个部门所有人半年的销售数据合并到一份Excel文件中。
思路
我们想获取单元格A1的内容,就会输入公式“=A1”;如果要获取Sheet1下的A1内容,就会输入“=Sheet1!A1”;如果要获取的在“解晴.xlsx”文件下,就会输入“='D:\数据\[解晴.xlsx]Sheet1'!A1”。基于此,我们可以不用打开Excel文件,便轻松合并多个Excel。
步骤1:提取Excel文件名称
在命令提示符中输入“dir /b Excel文件所在路径”获取所有Excel文件的名称,复制名称到一个空白Excel工作表中。然后复制A列所有的名称,选中“B1:H8”区域,按“Ctrl + V”粘贴,这样“A-H”列都粘贴上了Excel文件名。
为什么是“A-H”列呢,因为原数据就是这样的。
步骤2:Excel名称转换成一列
复制“A-H”列数据粘贴到Word文档中,选择“只保留文本”,然后使用“文本转表格”工具转换成一列数据的表格。
步骤3:创建辅助表,获取源数据单元格地址
将一列的Excel名称粘贴到汇总表的A列,在“B-I”列输入“A1-H8”,即要合并的Excel文件中数据的单元格地址。
复制“B1-I8”数据,然后在输入栏左侧的名称中输入“B9:I40”,按Enter键选中这块区域,最后按“Ctrl + V”粘贴,效果同步骤1。
步骤4:输入公式,连接Excel文件名和数据地址
J1公式:="t='D:\数据\["&$A1&"]Sheet1'!"&B1
公式中的“D:\数据\”是Excel文件路径,“Sheet1”是要合并的Excel文件中的工作表名称。
公式输入后,向右填充,直到结果显示“H1”为止。然后选中这些公式,双击填充所有的公式。
步骤5:粘贴为数值,然后将文本公式转换成真正的公式
复制步骤4的结果,选择性粘贴为数值。然后将“t=”替换为“=”。
所有Excel文件的内容就都合并到一起啦。
看起来似乎有点复杂,但其实很容易,只要稍微理解一下整个的思路就好了。
方法优点:
不限Excel版本和 wps版本,比Power Query灵活。可用于合并多个工作表。想提取几行或几列都可以,取决于你在创建辅助表时,输入了多少单元格地址。本例中的“A1-H1”是标题行,创建辅助表时,删除“A1-H1”,就不会多次提取到标题了。
谢谢阅读,每天学一点,省下时间充实自己。欢迎点赞、评论、关注和点击头像。
- ?
如何把两个excel表格中相同的数据筛选出来?
迎荷
展开
1.将两个工作表放在一个窗口中,如图所示:sheet1是全部学生的,sheet2是某班学生花名。
2.在sheet1相对应名字同一行的空白出输入=if(countif())。
3.然后切换到sheet2,选中全部名字并回车。
4.再切换到sheet1,这时这个函数变成了=if(countif(Sheet2!A1:A44))。
5.注意:这一步时,要将字母(这里是A)以及数字(这里是1和44)前全加上符号$,=if(countif(Sheet2!$A$1:$A$44))。
最后,将函数补充完=if(countif(Sheet2!$A$1:$A$44,A2),"S","F"),输入完成后,按回车,显示为S的就是这个班的学生,显示为F的就不是。再从这一行拉下填充,全部学生就可筛选完毕。
6.筛选S一列,进行复制粘贴第三个表格。
(本文内容由百度知道网友茗童贡献)
- ?
「Excel实用技巧」文件夹目录用最快的方式提取,大多数人都不会
阿克罗蒂里
展开
如果我们的文件夹中有多个个Excel文件,怎么才能把文件名一次的提取到Excel表格中呢?
或许大家可以去通过批处理bat文件提取的方法,但是有时候我们会出现代码想不起来的情况。今天,我就介绍一种超级简单、粗暴的方法直接提取。
1、打开文件夹,在复制地址栏中的地址。
2、把复制的地址粘到IE的地址栏中 按回车打开,文件夹中所有文件名会显示在IE页面中,然后按Ctrl+A全选再复制。
3、粘贴文本到Excel表格中,稍做调整后完工。
提取的文件名到底有用吗?? 我回毫不犹豫的说:当然有,批量修改文件名称,制作带链接的文件目录、批量从多个文件中提取数据.....
当然,今天的技巧不限于Excel文件,适合于所有类型的文件。但知道这个技巧的人很少,替我分享给你身边的小伙伴吧。
- ?
如何将excel表格中同列的重复数据筛选并提取出来?
压抑
展开
如何将Excel中同一列的重复数据筛查出来?
在数据处理中,如果是对少量数据进行处理的话可以通过手动计算等方式进行,但是如果遇到几千上万的数据的时候就比较麻烦了。
小编遇到这样一个麻烦,表格中的某列数据有多重复的数据,我需要把所有重复的数据提取出来进行分析。
以excel2007版本为例讲解
第一步:选中A列数据,单击“开始”菜单,选择“条件格式命令”下面的“突出显示单元格规则”—“重复值
”如图:
第二步:将重复值设置为某种颜色,小编选择的是红色文本(即字体为红色)。如图:
第三步:对A列数据进行排序,排序依据选择“字体颜色”,次序选择颜色。如图设置:
排序后的结果
操作结果是把所有重复数据标记了颜色并通过排序的方式置顶,当然也可以通过筛查功能,将颜色数据筛查出来。
对于成千上万的大数据的处理,这个方法还是很有效果的。
到这里就结束了,小伙伴们觉得文章有用欢迎关注、收藏、评论。
大咖们不喜勿喷哦。
- ?
技巧 | 如何在Excel中巧妙的提取你需要的数据?
Warren
展开
Hi,大家好,我是胖斯基
又是一个突如其来的周三傍晚,风雨交夹,狂风相随……
想想那许久未更新的公众号,再摸摸那胸前的一整块腹肌,愧色依旧,还是码字减肥吧!
如何在Excel中巧妙的提取你需要的数据?
举个例子:
由于从财务系统导出的数据中,会计科目是一种全级显示,用””来展示层级的划分,但是实际在数据统计或应用的时候,需要用到末级科目,故:如何在批量数据中,快速提取末级科目的名称?
也许猴急如你,一上来就想着函数或VBA,可行是可行,但是这种霸王硬上弓的模式,往往因用力过猛而不能快速得到预期效果……
聪明人,应该懂得循序渐进!
1
查找替换法
曾经有那么一个快捷键,它可以在茫茫人海中帮你寻觅“对象”,活好话不多,Ta就是Ctrl+F。
如果你想起了Ta,那这个问题便迎刃而解,效果如下:
注意这里查找的时候,用到的查询内容是 【*\】,查找内容替换为空,过程进度的处理基本上是秒级。
说明:由于要获取的是末级科目名称,故希望在科目信息中,保留的内容是最后一个【\】后面的内容,所以这里查找的时候采用了通配符【*】,组合起来就是【*\】,故:凡是最后一个【\】前的内容都查询出来,并替换为空
想想,这种温柔的方式,是不是比直接上函数和VBA的来的更和谐?
2
快速填充法
当然条条大路通罗马,何必单恋一种法?
曾经也有那么一个智能填充工具,Ta有那么一点人工智能的特效,能够想你所想,取你所需……
Ta就是在Excel2013版及之后推出的一个快速填充工具(Ctrl+E)。如果你想起Ta,那基本也就是万花丛中笑春风般的效果,如下:
注意:这里手工输入了2条记录(目的在于给Excel更多判断的选择),然后手工拖拽,选择快速填充后,所有末级科目数据自动呈现出来,怎么样?处理进度上是不是也是秒级?
So,循序渐进是不是很重要?
慢慢来,你会发现不一样的精彩
3
函数法
这种方法呢不是特别提倡,毕竟不是人人都能上手就来函数,当然,你要是Excel大神,无妨,怎么开心怎么来。
函数1:=TRIM(RIGHT(SUBSTITUTE(B3,"",REPT(" ",200)),200))
函数2:=MID(B3,COUNT(,FIND("",B3,ROW($1:$99))),20)
函数3:=VLOOKUP("*",RIGHT(B3,ROW($3:$24)-{0,1}),2,)
具体函数逻辑就不在重复累赘说明了
胖斯基|说
在Excel中提取有效的数据,是一项频率极高的操作,其处理逻辑基本都已成为套路,学会灵活应用就好。
当然,依旧要敲黑板说明的是:观察Ta,循序渐进,温柔对待,也许灵巧的技巧,能解决你很大的问题……
更多精彩,敬请关注Excel老斯基
- ?
如何将多个Excel文件合并成一个且保留原有数据?
九眼
展开
如何将多个Excel文件合并成一个且保留原有数据?事实上,我们可以借用Excel宏命令来处理该操作,并且保留原有数据,建立多个Sheet页,具体操作请看下文多个Excel文件合并成一个的方法。
如何将多个Excel文件合并成一个且保留原有数据?
1、将需合并的Excel文件放在同一个文件夹中,并这个文件中新建一个Excel文件。
2、打开新建的Excel文件,按 Alt + F11 键,打开宏,选择视图→代码窗口。
3、将下面的代码拷贝进去:
Sub sheets2one() '定义对话框变量 Dim cc As FileDialog Set cc = Application.FileDialog(msoFileDialogFilePicker) Dim newwork As Workbook Set newwork = Workbooks.Add With cc If .Show = -1 Then Dim vrtSelectedItem As Variant Dim i As Integer i = 1 For Each vrtSelectedItem In .SelectedItems Dim tempwb As Workbook Set tempwb = Workbooks.Open(vrtSelectedItem) tempwb.Worksheets(1).Copy Before:=newwork.Worksheets(i) newwork.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "") tempwb.Close SaveChanges:=False i = i + 1 Next vrtSelectedItem End If End With Set cc = Nothing End Sub
4、点击运行选项运行宏命令。
5、之后弹出选择对话框,选择要批量合并的Excel名,确定即可。
6、程序运行完毕后,会自动生成一个工作簿,工作簿内包含所有需合并的Excel文件,将工作簿另存为即可。
以上步骤便是,合并后的Excel文档会献出多个Sheet页,我们可以很方便的切换了解。
从多个excel文件中提取数据
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并