下面是读取Excel表格的记录
(生信技能树学员 )
自我介绍:医学博士,之前19年疫情刚开始就开始在b站上自学曾老师的R语言视频,但是因为那时候心态很浮躁,所以后续一有点困难就弃坑了。 近期毕业盲审过了,工作也定下来了,总算可以沉下来学点东西了,想着也为未来医生生涯做一点技术储备,因此报名了曾老师的数据挖掘课。今天是R语言基础课的最后一天,也学习了ggplot2的画图,以前也找厂家做过代谢组的测序,因此迫不及待的把厂家给的数据拿出来想自己试一试
任务:读取测序厂家给的差异分析excel文件
1.首先看一下这个原始文档,是个excel文件
2.第一次读取数据,error
尝试设置row.names = NULL继续error
换成read.table() 后 (我也不知道自己为什么会这样思考,换函数肯定是不对的,但是初学者就是需要勇于探索,在碰壁中成长)
3.考虑将后缀转化为csv文件继续读取
继续出错,并且发现mac的预览功能看不到内容,而excel可以打开
4.百度以后考虑可能跟这个csv文件的格式相关,尝试另存为,发现有UTF-8
的csv
5.转化以后轻松读取
6.读取的数据没有报错但是仍有问题
可以看到数值比较大,需要log
然后就出错了。。。
str()一下提取的exp数据,发现第8列是chr
那我就改一下不就行了?
还不行,百度一下发现可能是文件里有缺失值,转化时候会有NA
这么搞是不行的
百度发现可以通过na.omit()去缺失值
于是先去缺失值然后再转为数值型,最后再把数据框转化为矩阵进行数值处理
代码语言:javascript复制a=read.csv('yuanshi1.csv',sep = ",",header = T,row.names = 1)
head(a[,5:12])
exp<-a[,5:12]
#去除缺失
exp<-na.omit(exp)
class(exp)
str(exp)
exp[,8]=as.numeric(exp[,8])
str(exp)
exp<-as.matrix(exp)
exp = log2(exp 1)
exp
总算出来结果了,折腾了好久
教训
1.文件初始格式很重要,mac下载excel文件,它可能不是utf8的,可以先另存为一下。
2.注意读取以后没有报错不等于一定是对的,可以str和class一下,这些函数一定要敲1000次以上!
3.要注意去除缺失值,而且是要先去缺失值,再进行后续处理