前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【生信技能树培训】R语言中文件的读取

【生信技能树培训】R语言中文件的读取

原创
作者头像
HenryLei
修改2023-01-12 14:59:39
3.8K0
修改2023-01-12 14:59:39
举报
文章被收录于专栏:生信笔记生信笔记

一、csv格式文件的打开

  1. 用Excel打开
  2. 用记事本打开,打开后显示逗号分割每一列
  3. sublime打开(适用于大文件)

**csv的本质是纯文本文件。**

  1. R语言中读取CSV

如:

代码语言:text
复制
test= read.csv('ex3.csv')

即将ex3.csv中的内容提取出来,传递给变量test,生成一个数据框。后续对数据框的操作,对文件无影响。

**Tips:**关于文件后缀

CSV = Comma Separated Values,即逗号分隔符文件

TSV = Tab Separated Values, 即制表符分隔文件

对于纯文本文件来说,后缀没有意义,只是约定俗成,起提示作用的标识。

二、R语言读取文件的函数

read.csv() : 通常读取csv格式,但也可以读取其他纯文本文件

read.table() : 通常用于读取txt格式文件

三、 将数据框导出为文件

(一)导出为表格文件

函数:

csv格式:write.csv(test, file = 'example.csv')

txt格式:write.table(test, file= 'example.txt')

(二) 导出为R特有的数据保存格式

文件后缀:.Rdata

  • 文件里存储的是变量,而不是表格。
  • 使用其他软件无法打开,只能在R语言中查看。

保存和加载函数:

  1. 保存: save()

格式:save(test, file = 'example.Rdata')

test 为要保存的变量,可以是多个变量,变量的数据结构可以多种。

file参数为给生成的文件指定文件名的参数。

  1. 加载:load()

格式: load('example.Rdata')

load函数加载文件的时候,不需要赋值。load是将文件中的变量加载到环境中。

**Tips:**

加载的时候,文件在工作目录以下的目录时,输入文件名用Tab补全时,会自动补全其相对路径。

也可以通过../...... 来指定上一层级目录的文件的读取。

四、实例

(一)自动识别列名

代码语言:text
复制
ex1 <- read.table('ex1.txt')

#会生成列名V1,V2,V3……

ex1 <- read.table('ex1.txt', header=T)

#默认情况下,参数header为FALSE,将header改为TRUE,则将第一行识别为列名。

(二)行名与列名的正确识别

代码语言:text
复制
ex2 <- read.csv('ex2.csv')

#会将行名作为第一列导入。

#列名中的“-”符号会转换成点(.)

ex2 <- read.csv('ex2.csv', row.names = 1, check.names = F)

#row.names为指定哪一列作为行名。

#!!!数据框不允许重复的行名!!!

#check.names设定是否检查行名与列名并转换特殊字符

(三)文件内容的完整性、准确性识别

代码语言:text
复制
soft <- read.table('soft.txt', header = T, fill = T)

#当文件有行是空的时候,若不指定fill参数,则读取文件会报错,即无法成功读取文件。

#当指定fill参数为TRUE时,读取文件时,会自动将空行的地方填充成NA。但是,当出现某些行间隔空缺的时候,会将空行后一列的内容补充到前一列的空行中来,从而造成数据错乱。见下图。

单独指定fill参数为TRUE时,E列中826行开始的内容会被移动到D列的空行中。见下图。

**原因在于,用纯文本查看文件时会发现,在862行之后的第4列与后面的内容之间有两个制表符分隔。Excel可以正确识别两个制表符,知道两列之间有一个空列,而R语言中该函数无法识别。**

查看read.table函数的参数默认值可以发现:

read.table(file, header = FALSE, sep="")

sep参数默认指定空字符串为分隔,实际上是指将**看不见**的字符串都识别为分隔符(两个制表符连在一起显示出来是看不见的,算作一个)。

**因此,需要具体指定分隔符。**

代码语言:text
复制
soft <- read.table('soft.txt', header = T, sep='\t') #此时不需要再指定(fill参数)是否填充空单元格了

(四)导入后的查看和另存为

代码语言:text
复制
> #4.soft 的行数列数是多少?列名是什么

> dim(soft)

[1] 1000    5

> colnames(soft)

[1] "ID"       "SEQUENCE" "GeneName" "GB\_ACC"  

[5] "SPOT\_ID" 

> #5.将soft导出为csv

> write.csv(soft,file = "soft.csv")

> #6.将soft保存为Rdata并加载。

> save(soft,file = "soft.Rdata")

> rm(list = ls())

> load(file = "soft.Rdata")

(五)用于读取/导出文件的R包概览

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、csv格式文件的打开
  • 二、R语言读取文件的函数
  • 三、 将数据框导出为文件
    • (一)导出为表格文件
      • (二) 导出为R特有的数据保存格式
      • 四、实例
        • (一)自动识别列名
          • (二)行名与列名的正确识别
            • (三)文件内容的完整性、准确性识别
              • (四)导入后的查看和另存为
                • (五)用于读取/导出文件的R包概览
                相关产品与服务
                文件存储
                文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档