美文网首页R小推车Lab267生信教程生物芯片数据
03.数据框处理基本操作(未完待续)

03.数据框处理基本操作(未完待续)

作者: 安哥生个信 | 来源:发表于2019-03-20 07:21 被阅读3次

    第一,这一节讲什么?

    ​ 这一节讲述一些关于R语言处理数据框的基本操作

    ​ 根据我平时工作的经验,只将一些最常用的操作介绍给大家

    第二,这一节如何讲?

    ​ 我会提供一些示例数据,然后大家根据我的讲述,一一朝下操作

    ​ 在操作过程中,我会强调自己认为一些比较重要的点

    第三,这一节的目的?

    ​ 数据框的基本操作,当然是为了后面的实际案例操作做好准备了

    数据格式说明

    生信分析的大部分结果是表格形式,这个表格文件的格式一般为txt文档。

    这些txt文档的列通常为tab制表符分割,如果使用Notepad++打开文档的话,你可能会看到类似下面的结果

    image

    不同列之间的即上面所说tab制表符,纯文本形式表示为\t

    制表符一般是不可见,同样不可见的常用字符还有每行结束时的换行符\n, 以及空格

    Notepad++是一个常用的文本编辑器,在视图设置里可以将所有字符显示出来,例如在上图中,空格和制表符分别被显示为·

    稍微啰嗦一下,为什么生信的结果多以txt文档和csv文档(以,分割的表格)?

    原因有两个:

    1. excel文档有行数上限,对2003版最大行数是65536行,对2007以上版本,最大行数是1048676行;生信分析结果数据量较大,有时候会有限制

    2. excel不是纯文本格式(主要原因),生信分析基本都在Linux操作系统下完成,而excel文件在Linux系统下是无法直接处理的

      写到这里,我实在忍不住想要吐槽一下微软,这真是一个神奇的公司……生信人员必须掌握的技能表中,dos2unix一定是名列前茅的……感觉有点莫名其妙的同学请跳过这段吐槽哈~~~

    对于大多数非生信专业同学,可以鼠标右键选择excel方式打开;或者直接将文件后缀修改为xls,然后就可以直接用excel打开了。但是请大家务必注意,excel会自动将时间类的字符进行转化,例如在excel中输入Sep 2字符会自动变为2-Sep

    测试数据说明

    数据存放在百度网盘test_data目录下,链接: https://pan.baidu.com/s/1a8f7FVGtviIBebf0E_6VYg 提取码: ncxw

    lncbook_disease.txt 是我从LncBook数据库下载的疾病相关lncRNA

    LncRNADisease_experimental_supported_disease_2017.txt是我从LncRNADisease数据库下载的经过实验验证的疾病相关lncRNA

    以lncbook_disease.txt文件为例,文件打开后有很多内容,但是我们只用下面图片显示的几列就够了

    ​ 第一行是表头

    ​ 第一列是LncBook数据库id,后面几列是对该LncRNA的注释,如相关的疾病和基因等

    ​ 一个id可能注释有多个信息

    ​ 有的单元格是空的,有的单元格内容为NA,这些都表示此处无内容

    image

    数据框读取

    数据框读取的时候,大家可能会比较熟悉read.table函数。但是我比较推荐read.delim函数,读取我上面说的生信格式文件会更加方便。

    在下面的案例中,可以看到,read.table函数会报错。

    另外一点,虽然read.delim函数默认参数sep='\t',header = TRUE,但是我每次都会自己手动写出来。这样会增加自己对于即将处理的数据的熟悉度,算是个人一个小的工作习惯。

    > table_df <- read.table('lncbook_disease.txt',sep='\t',header = TRUE)
    Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
      line 10 did not have 10 elements
    > delim_df <- read.delim('lncbook_disease.txt',sep='\t',header = TRUE)
    

    为什么此处read.table使用会出错,我暂时不做过多解释。如果有人比较纠结这个事情的话,可以尝试一下下面的代码。

    table_df <- read.table('lncbook_disease.txt',sep='\t',header = TRUE, quote = '')
    

    相关文章

      网友评论

        本文标题:03.数据框处理基本操作(未完待续)

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