前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言从入门到精通:Day4

R语言从入门到精通:Day4

作者头像
用户6317549
发布2019-09-24 16:54:08
1.2K0
发布2019-09-24 16:54:08
举报
文章被收录于专栏:科研猫科研猫

上一节课我们熟悉了R语言中的各种数据类型,帮大家复习一下,这些数据类型包括了向量(vector)、矩阵(matrix)、数组(array)、数据框(data.frame)和列表(list),还提到了因子(factor)。这些数据类型在我们运用R语言解决实际问题的时候都非常有用,在上节的例子中我们是在R里面直接生成的数据,但是实际数据分析中,如何快速灵活的读取和处理多种格式的外部数据呢?这节课的主要内容,我们就来讲讲R语言中数据的读取。

温馨提示

1、本节内容重点内容较多,

务必紧跟红色标记。

2、测试数据及代码

见文末客服小姐姐二维码。

上节教程结束后,有同学问:我每次用R语言解决实际问题的时候都要像第3节中那样用键盘将每个数据输入电脑里面吗?答案当然是否定的。R语言给我们配套了多种输入数据的方法和接口,能够快速灵活的处理多种格式的数据(如图1)。这节课的主要内容就是R语言中数据的输入。

图1:R语言数据输入的示意图

下面来逐一学习不同的数据导入方法。

1. 使用键盘输入数据

要求:了解

在上一次的学习中,大家已经接触了很多了创建不同类型变量的方法,这里再给大家提供几个从键盘输入数据的方法。如图2、图3、图4所示:

图2:函数read.table()的键盘输入用法

图3:函数fix()的使用(1)

图4:函数fix()的使用(2)

第一种方法是在创建data.txt字符串之后,用函数read.table()创建数据框data.1。这种用法可以让我们把数据嵌入R代码中去。此处切记,read.table()函数是我们最为常用的读取外部数据的函数,下文还会详细解读。

第二种方法是用函数fix()创建了一个和data.1一样的数据框data.2,函数edit()也有同样的效果,大家可以在帮助文档里面找一下函数edit()的具体用法。

这些在处理一些小数据集的时候是很有效的,但是面对大数据的问题就力不从心了,并且也不够灵活,而下面要介绍的方法就是要解决这两个问题。

2. 从文本文件导入数据

要求:必须掌握

在上文的第一种方法中,函数read.table()是从键盘输入的字符串变量里面创建数据框的,这种方法并不适用,实际上read.table()函数的功能要更加强大一些。函数read.table()更加常用的是从带有分隔符的文本文件中读入数据并创建数据框(实际上csv文件就是常见的带分隔符的文本文件,其分隔符是逗号“”,csv文件可以通过文本编辑器或者excel软件创建,也可以是perl、python脚本的输出结果)。

在Rstduio中输入read之后会自动联想出函数read.table()、read.csv()和read.csv2(),这三个函数的用法比较接近,这里就只介绍read.table(),另外两个函数大家可以自己尝试。

可能有些同学已经发现在R的帮助文档里面,函数read.table()的参数很多,看上去很复杂,不用担心,实际使用中我们需要调整的参数并不多,下面列出了一些关键的参数用法:

表1:函数read.table()的参数及用法

以文件example.csv为例(测试数据见文末,联系胖雨小姐姐可得)来演示一下,文件中以逗号作分隔符,每个数据都用双引号围住。

图5:example的一部分数据

文件example.csv里面前7行是主体数据的注释,第一列是基因名。如果直接用函数read.table()读取,如图6。

图6:直接读取的示意图

图7:调整参数之后的示意图

可以看到图6中的读取效果并不理想,在图7中,加上skip和row.names两个参数之后,数据就显得有条理了。函数read.table()还有很多其他的参数,感兴趣的同学可以多尝试一下。

3. 从xlsx文件读入数据

要求:了解

对于平时更多使用excel软件的同学而言,xlsx格式的表格文件比csv要更常见,所以这里也提一下怎么把xlsx文件导入R语言(其实在excel软件包里面,大家可以直接把xlsx文件另存为csv文件,就可以直接用函数read.table()、read.csv()和read.csv2()了)。

在有些R语言教程中,推荐了R包xlsx,但是这个包依赖与xlsxjars和rJava包(关于R包的内容,请参考前期文章:挖掘GEO速成SCI文章系列教程(3)-R语言基础),以及一个正常工作的Java,安装起来较为麻烦。

这里我给大家推荐一个不需要这些依赖的R包:openxlsx(openxlsx包的安装如图8)。openxlsx包的帮助文档里介绍了三个写入数据和一个读取数据的函数,其中读取数据的函数read.xlsx()就能实现xlsx文件的读取。这个函数的命名和用法都和read.table()非常类似(如图9),大家不妨自己尝试一下如何使用这个函数。

图8:包openxlsx的安装

图9:函数read.xlsx()的参数

4. 常用的数据操作函数

要求:掌握

读取数据之后,大家就可以开始做一些简单的数据处理了。R语言中有很多常用的函数,这里先给大家一个简短的表格,供大家在读取数据后做一些练习。一些更加复杂的函数在下次再集中给大家介绍。

小结

实际上数据的读取只是R语言的冰山一角,但是也是开始一个数据分析项目的不可或缺的一步。上面只介绍了三种数据输入的方法,也是大家在自己项目中最可能遇到的情况,R语言还可以读取XML、网页、数据库(MySQL、Oracle等等)、SPSS和SAS等数据,篇幅有限,就不一一介绍了,如果有同学需要这方面的帮助,我们也可以单独再出一期和大家交流一下。当然,大家在数据准备和输入过程也可能会遇到很多问题,欢迎和我们一起交流讨论。

文末有本节课程的测试数据和代码哦~~

最后跟大家唠几句:任何事物的学习都要循序渐进,一口吃不了个胖子,希望大家能够沉下心来,力争每节课都能掌握,这样等到最后课程结束的时候,再回过来看,你会突然发现,自己已经掌握了R语言的精髓。总之,希望随着课程的推进,希望大家每天都有所收获。

说好的,期期皆有福利干货,本期干货如下:

本期干货

·

!!R语言数据导入测试代码及数据!!

原文详情:“科研猫”公众号

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档