class 5
#本文引用自生信技能树
一、判断R包的安装
1.电脑是否已经安装过此R包?
>as.logical(require())
if(!require())install.packages()----会返回:逻辑值!
F:电脑已经安装
T: 电脑没安装,并现在安装R包
【加!感叹号,可使结果变成逻辑值】
【小贴士!让warning闭嘴的操作:quietly=T】
【条件语句if(F)后面代码跳过、if(T)后面代码被执行】
【写代码的时候要有验证、检查的意识和能力】
2. R包如何使用
(1)---获取帮助
查看帮助文档:?+函数名称
【R语言有基础包,如base包】
(2)---找R包介绍页面(直接搜)
网页搜:limma package
【一般不需要】
(3)---列出一个包都有哪些函数
ls:列出当前环境的所有变量
>ls("package:stringr")前提:要先把R包加载成功,才能用ls列出来
列出一个包都有哪些函数或数据
3.R语言里的符号
()--函数、赋值和输出、先运行
[]---向量、数据框、矩阵取子集
[[]]---列表取子集
$ 数据框取列,列表取子集
<- 赋值
= 赋值,连接形式参数与实际参数
== 判断是否相等
! 逻辑值的否定
{} 多行代码
::包::函数
4.认清函数和数据
· 只有数据才能被取子集![]
· 两个中括号前取子集一般是从列表中提取![[]]
· 而文件名称应该:1.在实际参数位置2.且在能识别文件名称的函数括号内3.带引号
5. 解决问题的正确姿势
(1)检查代码与环境
代码错误?环境问题?工作目录?重启?
重启(诡异的错误):
1.session
2.Rstudio
3.电脑
(2)找不同:
比较数据:能正确运行的数据、出错的数据
异常值?重复值?非法输入?数据类型?数据结构?
非法输入:如颜色:鸡蛋
Inf:正无穷,-Inf:负无穷
NaN:非数字;NULL:
(3)搜索报错:
复制error信息,浏览器搜索
(4)有效提问:
前因、后果、目的
代码、数据、报错截图
做过的尝试
6.文件的读写
(1) 一般在读取时就赋值!----文件读取是R语言中的数据框来源
【变量名test--存在R语言内部=read.csv("文件名")】
【表格文件读入到R语言里,就得到了一个数据框,对数据框进行的任何修改都不会同步到表格文件】
(2)常见分隔符号:
逗号、空格、tab-制表符
逗号分隔文件:csv
以制表符为分隔文件:TSV
【通常用于读取txt格式:read.table()】
【通常用于读取csv格式:read.csv()】
· 直接读取如果失败,就需要指定一些参数
· class是判断R语言内部的数据是哪个数据类型?
失败有两种表现:1.报错2.意外结果
(3)将数据框导出,成为表格文件
csv格式:write.csv()
text格式:write.table()
注意:
!!读取-编辑修改-导出(不一样的数据名)
!!不要覆盖原文件
!!让代码可重复,数据可重现
不要使用excel会改基因名称!一切操作在r语言中进行
(4)R特有的数据保存格式:Rdata
Rdata:保存的是变量,不是表格文件
支持多个变量存到同一个Rdata
是R语言特有的数据存储格式,其他软件无法打开
· 相关命令:
save()保存:save(test,...,file="文件名")
load()加载:load(“文件名”)
(5)文件的后缀
没有意义,文件内容不改变
(6)文件导出
write.文件类型(变量,file=)
(7)实站文件!!
1.输出文件、输入文件、输出的图片、保存的Rdata、
脚本和Rmd文件+Rproject
读取:surv变量=read.table("import/文件名)
2.分步骤
加载上一级的文件、相隔文件夹调用文件时!:用..来表示
load("../文件夹/文件名)
3.经典报错:
原因1:文件没有存放于工作目录下/拼写错误用Tab自动补齐
4.默认参数不适于你当前需要手动调整
(8)读取ex1.txt
ex1 <- read.table("ex1.txt")
1)列名变行!列名没有被正确识别!如header=F
解决办法:!看函数帮助文档!
read.table(file,header=F---表格中的第一行是否是列名!)
ex1 <- read.table("ex1.txt",header = T)
2)行名没有正确识别:row.names = 第几列是行名
ex2 <- read.csv("ex2.csv",row.names = 1,check.names = F--有特殊字符不改!)
【数据框不允许重复的行名!会报错!先处理重复值,再设为行名!
read.csv("rod.csv",row.names = 1)
rod = read.csv("rod.csv")】
3)读取soft.txt【比table更好的读取:read.delim("")】
如果soft数据中间有空缺!R语言读文件时串列了怎么办!不报错!=哑巴地雷
连续两个分隔符=空列=一切看不见的东西都会被认为是!sep=""一个分隔符
soft <- read.table("soft.txt")
【X]soft <- read.table("soft.txt",header = T,fill = T) #其实不对
有坑!
【√】soft2 <- read.table("soft.txt",header = T,sep = "\t")
4)soft 的行数列数是多少?列名是什么
dim(soft)---维度,统计多少行多少列
colnames(soft)-----列名
rownames()-----行名
5)将soft导出为csv
write.csv(soft,file = "soft.csv")
6)将soft保存为Rdata并加载。
save(soft,file = "soft.Rdata")---保存
rm(list = ls())-----rm=ls清空环境
load(file = "soft.Rdata")-----不会保存后立刻加载
(9)读取时要经常检查!
用于读取/导出文件的R包
fread()实现智能读取【data.table】
export()导出【rio】
import_list---多个工作部的数据,引入
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。