DAY5 生信入门-文件读写

一.认识csv格式

win10后缀不显示的解决办法:查看,文件扩展名。

csv打开方式

1.默认excel
2.可用记事本打开
3.sublime(适用于文件)
4.R语言读取 读进R语言,就是个数据框,可赋值,变量名与文件名无必然联系。

test = read.csv("ex3.csv")

表格文件读入到R语言里,就是个数据框。对数据框进行的修改不会同步到表格文件。如果想保存,另存为(save as)新的文件。

二.认识分隔符

常见分隔符:逗号 空格 制表符 (\t)(Tab键)
CSV = Comma Separated Values 逗号分隔值文件,CSV文件的约定俗成分隔符是逗号
TSV = Tab Separated Values 制表符分隔值文件

  • 后缀名没有意义,只是人为定义的格式后缀,约定俗成。在windows电脑上可以更好地绑定打开该文件的软件。
  • 本质都是纯文本。不论后缀是什么,都可以用记事本打开。

三.将表格文件读入R语言,成为数据框

read.csv() #通常读取CSV格式
read.table() #通常读取txt格式

读取完后哪里不对改哪里
直接读取如果失败,就需要指定一些参数
读xlsx文件,不是纯文本:
1.把xlsx文件另存为csv
2.用专门读xlsx文件的函数读取

四.将数据框导出,成为表格文件

导出

读取-编辑修改-导出 最好不要覆盖原文件

五.R特有的数据格式:Rdata

  • 是R语言特有的数据存储格式,无法用其他软件打开
  • 保存的是变量,不是表格文件,所以不涉及赋值
save()保存-load()加载 
save(test,file= "example.Rdata")  #这里的file特殊,不可省略的形式参数
load( "example.Rdata") 
错误:x=load("example.Rdata"),不能赋值,否则输入x,只能出现名字,没有内容。

project组织形式
脚本( .R)
数据( .Rdata)用save命令生成的
表格( .csv /.txt)


以.开头的文件是默认生成的。
.RData:切换Rproj时保存选肯定,生成的。生成自动,加载自动,不需要操作。
常见报错:找不到文件
原因:
1.文件没有存放于工作目录下(Rprojecct)
2.拼写错误 (用tab自动补齐)
默认参数不适用于你当前读取的文件,也会报错

写括号,引号,tab自动补齐文件名。

check.names, comment.char,header ,row.names四个参数基本够用。
#文件读写部分代码
#1.读取ex1.txt
ex1 <- read.table("ex1.txt",header = T)
#2.读取ex2_B cell receptor signaling pathway.csv
ex2 <- read.csv("ex2_B cell receptor signaling pathway.csv",
                row.names = 1,
                check.names = F)
#如果不加参数,R中预览视图与记事本数据比较,出现3个问题
1.第一行一列多x    x只为占位,row.names = 1,第1列被正确识别为行名,
2.TCGA-变. 因为减号属于特殊字符,默认对列名检查
3.保留成6位小数,10.9608849032505变成了10.960885
#3.读取GSE32575_series_matrix.txt
gse <- read.table("GSE32575_series_matrix.txt",
                    comment.char = "!",#!开头的行都是注释行,读取的时候跳过去。
                    header = T,#这个文件有列名,把第1行设置为列名
                    row.names = 1)#文件第1列是行名,把第1列设置为行名
#如果不加参数,报错。
#4.描述gse的属性
dim(gse)
colnames(gse)
rownames(gse)
class(gse)
#5.将gse导出为txt。
write.table(gse,file = "z.txt") 
#导出的是什么只由write.table函数决定,只由动词决定,跟后缀无关。
write.table(gse,file = "gse.csv")导出的不是csv文件
write.table(gse,file = "gse.csv",sep = ",") #这样可以导出为csv文件
#6.将gse导出为csv文件
write.csv(gse,file = "zz.csv")
#7.将gse保存为Rdata并加载。
save(gse,file = "ex.Rdata")
rm(list = ls())
load(file = "ex.Rdata")
错误操作:save(gse,file = "gse.csv") excel打开是乱码,要用load读取。

#练习6:1.读取complete_set.txt(已保存在工作目录)
x=read.table('complete_set.txt',header = T)
# 2.查看有多少行、多少列
dim(x)
# 3.获取行名和列名
rownames(x)
colnames(x)
# 4.导出为csv格式
write.csv(x,file = "x.csv")
# 5.保存为Rdata,再加载它
save(x,file="x.Rdata")
# 6.加载class.Rdata,查看数据类型
load("class.Rdata")
class(y) #class矩阵只能告诉数据结构矩阵,不能告诉数据类型
> str(y) #str()函数来查看这个数据框当中有哪些变量,以及变量的类型
 chr [1:6, 1:7] "40" "20" "51" "46" "38" "49" "15" "45" "12" "11" "12" ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:6] "GSM1" "GSM2" "GSM3" "GSM4" ...
  ..$ : chr [1:7] "gene1" "gene2" "gene3" "gene4" ...
#查看矩阵的一行,一列,一个格子的数据类型,就相当于查看矩阵的数据类型。
#class(y) 只能输出数据结构是矩阵,classy[,1]或classy[1,1]才能看出数据类型是字符
#怎么求字符型矩阵的平均值。
把前6列转换成数值型(apply函数),再求
1.字符型矩阵怎样转换成数值型矩阵。
2.矩阵怎样取子集
> y[,1]
GSM1 GSM2 GSM3 GSM4 GSM5 GSM6 
"40" "20" "51" "46" "38" "49" 
> as.numeric(y[,1])
[1] 40 20 51 46 38 49

高阶数据读取指南
https://www.jianshu.com/p/4ea320c0dcc6
R语言能读取的文件格式

R语言能读取的文件格式

用于读取/导出文件的R包
用于读取/导出文件的R包

小洁老师的小技巧分享

沙拉查词,
印象笔记
Scholarscope
R for data science 英文免费版

了解一个新的东西:看5本书,或把一本书看5遍。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容