05. 文件读写
补充
#R语言提示词中文改英文,源头上需要从安装上解决,否则每次重启R语言时需要运行以下代码 Sys.setenv(LANGUAGE='en') #列出目前所有变量 ls() #清除所有变量 rm(list=ls()) #加载R包时require和library的区别,!require()不仅可加载包还可返回逻辑值告知安装是否成功
1.认识csv格式
win10显示文件扩展名
打开方式
(-)默认excel
(二)记事本打开
(三)sublime(适用大文件)
- 打开不卡顿
(四)R语言读取
- 表格文件读入到R语言里,就是个数据框
- 对数据框进行的修改不会同步到表格文件
2.认识分隔符
- 常见:逗号、空格、制表符(\t)
- 一般的文件不需要自己写分隔符
3.将表格文件读入R语言,成为数据框
##文件读取 read.csv("文件名.csv") #通常读取csv格式 read.table("文件名.csv") #通常用于读取txt格式 a=read.csv("文件名.csv") #需要赋值!! ###直接读取如果失败(行名,列名没对应上),就需要指定一些参数 #1.读取ex1.txt ex1=read.table("ex1.txt")#默认参数没有把列名识别出来(没放在列名位置) ex1 = read.table("ex1.txt",header = T)#header=T--将第一行作为列名,R严格区分列名和第一行 #2.读取ex2_B_cell_receptor_signaling_pathway.csv ex2=read.csv("ex2_B_cell_receptor_signaling_pathway.csv") #行名没被识别,列名里的-被换成了. ex2 = read.csv("ex2_B_cell_receptor_signaling_pathway.csv", row.names = 1, check.names = F) #把第一列识别为行名,不要检查列名里的特殊字符(保持列名不变) #3.读取GSE32575_series_matrix.txt,赋值给gse。 gse=read.table("GSE32575_series_matrix.txt") #txt里的前面有!开头的若干注释行 gse=read.table("GSE32575_series_matrix.txt", comment.char = "!") #跳过!开头的注释行;行名列名还未被识别 gse = read.table("GSE32575_series_matrix.txt", comment.char = "!", row.names = 1, header = T) as.matrix(gse)#没赋值就没有发生过 gse=as.matrix(gse)#要赋值了才把gse转换为矩阵 #4.描述gse的属性 dim(gse) colnames(gse) rownames(gse)
4.将数据框导出,成为表格文件
-
- csv格式:write.csv()
- txt格式:write.table()
-
-
- 例:write.table(test,file="excample.txt")
-
##数据框导出 write.csv() ##csv write.csv(test,file="excample.csv") write.table() ##txt格式 write.table(test,file="excample.txt") #5.将gse导出为新的txt和csv文件。 write.csv(gse,file = "gse.csv") write.table(test,file="gse.txt")
5.R特有的数据格式:Rdata
-
- 是R语言特有的数据存储格式,无法用其他软件打开
- 保存的是变量,不是表格文件,所以不涉及赋值
-
-
- x=load("example.Rdata")
-
##保存和加载 save(x,y,file="example.Rdata") #file前面可以写多个变量 load("example.Rdata") ##存成Rdata后用load加载很方便,不需要设置行名,列名 ##可以整存整取 #6.将gse保存为Rdata并加载。 save(gse,file = "zz.Rdata") load("zz.Rdata")
- Rproject的组织形式
补充
R语言能读取的文件格式
用于读取/导出文件的R包
- 除了base是R自带,其他的函数要使用要先装相应的包
##rio这个包对于文件读取导出很方便 install_formats('arrow','feather','fst','hexView','pzfx','readODS','rmarkdown','rmatio') library(rio) export(a,file = "a.xlsx")#直接存成excel表格 import("a.xlsx")
注意事项
- 读取→编辑修改→导出,不要覆盖原文件!!!
- 让代码可重复,数据可重现
获取工具目录的位置:getwd()
常见报错:找不到文件
练习5-1
##练习5-1:文件的读取和导出 #1.读取complete_set.txt(已保存在工作目录) read.table("complete_set.txt") a=read.table("complete_set.txt")#列名未识别 a=read.table("complete_set.txt",header = T) str(a)#查看a的内容 #2.查看有多少行,多少列 row(a);col(a);dim(a) #3.获取行名和列名 colnames(a) rownames(a) #4导出为csv格式 write.csv(a,"complete_set.csv") #5.保存为Rdata save(a,file="complete_set.Rdata")#file=不能省略 #6.加载class.Rdata,查看数据结构,数据类型 load('class.Rdata') class('class.Rdata')#查看数据结构 ##如果误用了save存csv,save(a,file="a.csv"),可用load把它加载出来 save(a,file="a.csv") load('a.csv')
文件读取
R语言严格区分列名
R语言的列名不允许出现特殊字符,如—,会自动转化为别的(默认设置,可以更改) check.names()=F
列名正确识别,但行名没有,且R语言自动填充 row.names=1时,第一列就会被识别为行名
小数点位数
注释参数设置:comment.char="!"
header="T" 第一行识别为列名
读取时会是乱码,应该用load导入,名字只是假象
后三者不考虑行名