生信技能树-数据挖掘week1 1/4

2021-01-09  本文已影响0人  Caster_xiao

感谢生信技能树小洁老师

新建一个项目

在开始一项新的工作时,在R studio中新建R project(.Rproj),指定Directory名称以及工作目录(所有将要用到的脚本以及文件,请放在工作目录下)
新建脚本R script
打开脚本时如果出现乱码,File-Reopen with encoding-UTF8

脚本运行方式

逐行运行,快捷键ctrl+enter
脚本中#为添加注释,R自动忽略#右侧内容

数据类型与向量

数据类型

数值型numeric:1、2
字符型character:“a”、“12”
逻辑型logical:TRUE、FALSE、NA (请严格区分大小写)

判断数据类型

class()

比较运算的结果为逻辑值

<,>,<=,>=,==,!=
多个逻辑条件的连接可以用 &与,|或,非!
!4>5 TRUE

数据类型的判断与转化

> is.numeric(4)
[1]TRUE
>as.numeric("4") 
[1]4 

数据结构

1、向量vector
2、数据框data.frame
3、矩阵matrix
4、列表list

向量生成

#(1)用 c() 结合到一起
c(2,5,6,2,9) 
c("a","f","md","b")
#(2)连续的数字用冒号“:” 
1:5
#(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm
rep("gene",times=3)  
seq(from=3,to=21,by=3)
rnorm(n=3)
#(4)通过组合,产生更为复杂的向量。
paste0(rep("gene",times=3),1:3)
[1] "gene1" "gene2" "gene3"
> paste(rep("gene"),1:3)
[1] "gene 1" "gene 2" "gene 3"
> paste("gene",1:3,sep="")
[1] "gene1" "gene2" "gene3"

数据类型转化的优先顺序

字符型>数值型>逻辑型

> c(1,TRUE,NA)
[1]  1  1 NA
> c(1,2,"a")
[1] "1" "2" "a"

对单个向量进行操作

赋值:=,<- 均可

#初级统计
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和

重点区分

x%in%y x的元素是否在y中


==和%in%

对两个向量进行操作

#交集、并集、差集
intersect(x,y)
union(x,y)
setdiff(x,y)
setdiff(y,x)

循环补齐

当两个向量长度不同时,短的自动补齐长的

> x = c(1,3,5,6,2)
> y = c(3,2,5)
> x == y
[1] FALSE FALSE  TRUE FALSE  TRUE
Warning message:
In x == y : longer object length is not a multiple of shorter object length

向量取子集

#根据逻辑值取子集
x[x==10]
x[x<12]
x[x %in% c(9,13)]
# 根据位置取子集,中括号内必须是一个向量
x[4]
x[2:4]
x[c(1,5)]
x[-4]
x[-(2:4)]

向量匹配排序

match函数

y[match(x,y)] # y按照x的顺序重新排序
上一篇下一篇

猜你喜欢

热点阅读