原创 eryun 云生信学生物信息学 关注我们
对于做生信的小伙伴来说,用R语言读取和写入文件就是比较基础的技能了,由于文件格式比较多,用于读取写入文件的函数也有很多,其中较常见的就是读文件的read.table(),read.csv()和写文件的write.table(),write.csv()。
读入文件需要注意的是行名,列名以及分割符,对于txt格式的文本文档来说,就是” ”,而与读入文件相比,写入文件就比较让人头疼了,尤其是对行名的处理。因为在很多情况下我们会习惯将行名和列名读入,这样处理起来比较方便,但这样的话,行名上面就会形成一个空,比如:
data=read.table("D:/卵巢癌免疫和内质网/预后分析模型/65生存信息与表达量.txt",header = T,row.names = 1,sep = " ")
View(data)
这个空在保存的时候会给我们造成麻烦,因为如果我们不要行名,那我们的样本名就保存不进去了,这显然不是我们想要看到的,但如果我们要行名,就像下面这样:
write.table(data,file = "data.txt",sep = " ",quote = FALSE,row.names = T)
这样的话我们得到的文件是错位的,本来应该在第二列的时间到了第一列样本的名字的位置了。
这样的话我们就比较尴尬了,要行名也不是,不要行名也不是,于是我们就想了一个小妙招,给文件添一列行名,这样我们保存的时候舍掉行名,还有一列行名,这样问题就解决了。
adjustdata <- function(data) { data<-cbind(rownames(data),data)}data<-adjustdata (data)datawrite.table(data,file = "data.txt",sep = " ",quote = FALSE,row.names = FALSE)这个函数的原理就是把行名和原文件合并,也就是增加了一列,然后保存到时候舍掉
这样就能正确输出了。虽然很简单,但是很实用哟。
以上内容,R语言保存不错位小妙招了,欢迎小伙伴们分享讨论啊。
| 留言与评论(共有 0 条评论) “” |