R语言从入门到精通:Day4

作者: fc7587d03c83 | 来源:发表于2019-07-30 11:41 被阅读77次

上一节课我们熟悉了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语言数据导入测试代码及数据!!

关注“科研猫”公众号,联系客服

胖雨小姐姐

or

折耳猫小姐姐

领取

讲师简介

上海交通大学硕士,MIT博士,长期从事医学与生物信息学研究,主要研究方向为高通量测序在肿瘤早期筛查和无创产前诊断中的临床应用,独立开发多个数据分析软件并发表相关文章(影响因子≥5分6篇,≥10分2篇),熟知R、Python、Perl及C语言等多种编程语言及程序设计,曾累计书写R代码超过5万余行。

下期推文预告

R语言数据管理和操作

往期热文:

R语言从入门到精通系列

从今天开始,每天学点R语言~(领取教材)

R语言从入门到精通:Day1 (领取安装包)

R语言从入门到精通:Day2  (领取RStudio操作视频)

R语言从入门到精通:Day3       (领取测试代码)

科研作图系列

【科研猫·绘图】看·箱线图·如何美丽动人(代码分享)

【科研猫·绘图】优雅版·小提琴图(带R代码分享)

【科研猫·绘图】缤纷版·韦恩图(带R代码分享)

生存分析系列

【科研猫】生存分析的正确姿势(1)视频+R代码分享

【科研猫·出品】TCGA超大批量生存分析教程

GEO数据挖掘系列

GEO数据库挖掘(1)--SCI文章速成

GEO数据库挖掘(2)--快速锁定目标数据

挖掘GEO速成SCI文章系列教程(3)-R语言基础

重磅:GEO数据库挖掘教程(4)一体化分析代码(带视频+R代码分享)

GO/KEGG功能富集系列

3分钟了解GO/KEGG功能富集分析

干货预警:3分钟搞定GO/KEGG功能富集分析(2)

终极篇:3分钟搞定GO/KEGG功能富集分析-柱状图

终极篇:3分钟搞定GO/KEGG功能富集分析-气泡图

TCGA数据挖掘系列

隔壁实验室的“秃鹫”师兄又发SCI啦--TCGA数据挖掘实战

TCGA数据挖掘终结者:cBioPortal

生物信息入门系列

大咖聊“生信”—生物信息系列(1)

生物信息系列课程-R语言入门

更多科研新鲜资讯、文献精读和生物信息技能,请关注科研猫公众号

下方点好看,更多好看。

相关文章

  • R语言从入门到精通:Day4

    上一节课我们熟悉了R语言中的各种数据类型,帮大家复习一下,这些数据类型包括了向量(vector)、矩阵(matri...

  • 【科研猫】R语言从入门到精通:Day4

    上一节课我们熟悉了R语言中的各种数据类型,科研猫帮大家复习一下,这些数据类型包括了向量(vector)、矩阵(ma...

  • R语言从入门到精通:Day1

    今天是我们的系统教程《R语言从入门到精通》的第一讲,前面的背景讲解中《从今天开始,每天学点R语言~》,已经深入探讨...

  • 同源建模、分子对接和分子模拟方法教程往期回顾

    ​同源建模基础教程: 同源建模从入门到精通(一) 同源建模从入门到精通 (二) 同源建模从入门到精通(三) 同源...

  • R语言从入门到精通:Day2

    本来想着R语言虽然重要,但是肯花心思学习的人可能还是少数,但是这两天大家高涨的学习热情着实让人惊讶,很多同学后台催...

  • R语言从入门到精通:Day5

    经过前面几次推文的学习,相信大家对R语言已经有了一个大概的了解,同时也初步感受了R语言在数据处理领域的强大功能,不...

  • R语言从入门到精通:Day3

    在大概了解了R语言和在自己电脑上安装了Rstudio之后,相信大家对学习使用R语言迫不及待了。接下来,我们会推出一...

  • R语言从入门到精通:Day6

    最近经过前面几次推文的学习,我们的R语言教程已经讲解了快1/3的内容,相信大家对R语言已经有了初步的了解,特别是感...

  • R语言从入门到精通:Day7

    在向reviewer或者导师展示自己的统计分析结果时,一张图往往顶得上千言万语;在刚接触到数据时,图也能帮助我们发...

  • R语言从入门到精通:Day8

    在上一次教程中,我们讲解了R语言绘图的诸多函数,想必看到自己做出的图形,肯定小有成就感吧。上期的最后,给大家预告了...

网友评论

    本文标题:R语言从入门到精通:Day4

    本文链接:https://www.haomeiwen.com/subject/zvmgrctx.html