今天的内容主要是关于生信学习的思路,另外学习了文件的读取和输出
1.解决问题的正确姿势
(1)检查代码和环境
是代码错误?还是工作目录改变?摸不着头脑时可以考虑重启R studio解决
(2)找不同
比较能正确运行的数据和出错的数据,可能出现的情况有:异常值INF,重复值、非法输入、数据类型、数据结构
(3)搜报错
复制error信息,浏览器搜索(注意只需要复制报错的冒号后半句)
(4)有效提问 (这个思路很重要,不只是生信提问,不要等待别人追着帮助自己,而是主动讲明白疑问点,日常工作交流都会受益)
a.前因、后果、目的:在做什么分析,做了什么,导致现在的结果,目的是完成什么,才做的尝试,特别是外来的代码
b.代码、数据、报错截图(数据描述用str()函数)
c.做过的尝试(意味着排除的对象)
常见的无效提问:
1.只说失败、报错,不贴代码和截图
2.只贴报错,不贴代码,没有前因后果
3.不思考,不对比,不搜索就问
4.只说“不懂”,不说具体不懂的点
2.csv文件的打开方式
(1)双击打开,默认使用excel
(2)右键打开方式,可以选择记事本打开
注意:当数据量太大时可能导致记事本崩溃
(3)sublime或vscode(适用大文件,≈ 加强版记事本)
3.R语言读取文件
代码语言:R复制read.csv()
文件读取是R语言里的数据框来源之一
注意:表格文件读入到R语言里,就得到了一个数据框,对数据框进行的修改不会同步到表格文件,如果想要保存修改结果,建议另存一个文件
4.认识分隔符
常见:逗号(csv),空格(tsv),制表符('t',tab键,excel文件的分隔符)
注意:例如tsv、csv的纯文本文件的后缀没有意义,只是约定俗成,起提示作用,不起决定性作用,实际的分隔符可能是不同的,可以记事本打开之后看一下实际的分隔符
4.将表格文件读入R语言,成为数据框
代码语言:R复制read.csv() #通常读取csv
read.table() #通常读取txt
read.delim() #读取txt的一个替代函数
失败有两种表现:1.报错 2.意外的结果
直接读取如果失败,就需要指定一些参数,常见的参数有header=T(设置第一行为列名),check.names=F(读取时不修改列名格式),sep= (修改分隔符)
5.数据框导出,成为表格文件
代码语言:R复制write.csv(test,file = 'excercise.csv')
write.table(test,file = 'excercise.txt')
建议导出时取不同原文件的名字,不要覆盖原文件,让代码可重复,数据可重现
6.R特有的数据保存格式,Rdata
无法用其他软件打开,保存的是变量,不是表格文件,支持多个变量存到同一个Rdata
save()保存,注意file=不是固定的第二个参数,所以不能省略
load()加载,使Rdata的变量出现在环境里,因此不能给数据命名
7.三大基本函数
代码语言:R复制dim()
class()
str()
8.两个神奇的读数据的包
代码语言:R复制#包1:data.table
#只有fread一个比较好用的函数,所以一般不加载这个包
soft = data.table::fread("soft.txt")
class(soft)
#[1] "data.table" "data.frame"
#data.table是作者大神自创的数据类型
#一般用不到,所以就用data.table默认参数FALSE掉
soft = data.table::fread("soft.txt",data.table = F)
class(soft)
#[1] "data.frame"
#包2:rio
#支持非常多种数据的导入,只要数据实际内容和后缀相同,就能一键导入
library(rio)
#读取
soft = import("soft.txt")
#读取多工作簿的excel
ls2 = rio::import_list("ls.xlsx")
#导出为普通表格文件
export(iris,file = "iris.csv")
#导出列表
ls = split(iris,iris$Species)
export(ls,file = "ls.xlsx")
生信技能树,生信马拉松