R语言学习.1-R安装及向量介绍

1.R与Rstudio####

生信第一步,穿上打底裤。
打底裤品牌可以‘R语言’,也可是‘python’。
不过大多数人穿的都是R语言牌。建议你也先穿这个牌子。穿破了以后可以再换新的。
打底裤穿好,再穿个裤子。裤子品牌建议选Rstudio
一般人不会穿着打底裤就出来上街的。

1.1安装R

https://cloud.r-project.org

1.2安装Rstudio

http://www.rstudio.com/download
最好默认C盘安装,否则容易出错,今天不出错,明天也可能出错。

2.R语言第一种数据类型---向量

2.1.向量生成#####

(1)用 c() 结合到一起

> c(2,5,6,2,9) 
[1] 2 5 6 2 9
> c("a","f","md","b")
[1] "a"  "f"  "md" "b" 

(2)连续的数字用冒号“:”

> 1:5
[1] 1 2 3 4 5

(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm

rep("gene",times=3)  
[1] "gene" "gene" "gene"
 seq(from=3,to=21,by=3)
[1]  3  6  9 12 15 18 21
rnorm(n=3)
[1]  0.07456498 -1.98935170  0.61982575
 set.seed(1)#保证别人再次重新运行脚本的时候可重复 而不是保证上下两行是重复
rnorm(5)
[1] -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078
 rnorm(5)
[1] -0.8204684  0.4874291  0.7383247  0.5757814 -0.3053884

(4)通过组合,产生更为复杂的向量。

 paste0(rep("gene",times=3),1:3)
[1] "gene1" "gene2" "gene3"
2.2对单个向量进行的操作####
> #(1)赋值给一个变量名
> x = c(1,3,5,1) #随意的写法=
> x
[1] 1 3 5 1
> x <- c(1,3,5,1) #规范的赋值符号Alt+减号
> x
[1] 1 3 5 1
> 
> #赋值+输出一起实现
> x <- c(1,3,5,1);x
[1] 1 3 5 1
> (x <- c(1,3,5,1))
[1] 1 3 5 1

(2)简单数学计算 向量循环 类似循环

> x+1
[1] 2 4 6 2
> log(x)
[1] 0.000000 1.098612 1.609438 0.000000
> sqrt(x)
[1] 1.000000 1.732051 2.236068 1.000000

(3)根据某条件进行判断,生成逻辑型向量

 x>3
[1] FALSE FALSE  TRUE FALSE
> x==3
[1] FALSE  TRUE FALSE FALSE
> #(4)初级统计
> max(x) #最大值
[1] 5
> min(x) #最小值
[1] 1
> mean(x) #均值
[1] 2.5
> median(x) #中位数
[1] 2
> var(x) #方差
[1] 3.666667
> sd(x) #标准差
[1] 1.914854
> sum(x) #总和
[1] 10
> 
> length(x) #长度
[1] 4
> unique(x) #去重复
[1] 1 3 5
> duplicated(x) #对应元素是否重复
[1] FALSE FALSE FALSE  TRUE
> table(x) #重复值统计
x
1 3 5 
2 1 1 
> sort(x)
[1] 1 1 3 5
2.3.对两个向量进行的操作#####
> x = c(1,3,5,1)
> y = c(3,2,5,6)
> #(1)逻辑比较,生成等长的逻辑向量
> x == y 
[1] FALSE FALSE  TRUE FALSE
> x %in% y #x中的元素在y中吗
[1] FALSE  TRUE  TRUE FALSE
> #(2)数学计算
> x + y
[1]  4  5 10  7
> #(3)“连接“
> paste(x,y,sep=":")
[1] "1:3" "3:2" "5:5" "1:6"
> paste(x,y,sep='')
[1] "13" "32" "55" "16"
> paste(x,y)#默认是空格
[1] "1 3" "3 2" "5 5" "1 6"
> #(4)交集、并集、差集
> intersect(x,y)
[1] 3 5
> union(x,y)
[1] 1 3 5 2 6
> setdiff(x,y)#前有后没有的
[1] 1
> setdiff(y,x)#前有后没有的
[1] 2 6
> #当两个向量长度不一致
> x = c(1,3,5,6,2)
> y = c(3,2,5)
> x == y # 啊!warning啦!
[1] FALSE FALSE  TRUE FALSE  TRUE
Warning message:
In x == y : longer object length is not a multiple of shorter object length
> #循环补齐--看ppt  用短的补齐长的 得到长的数值
> 
> #利用循环补齐简化代码
> paste0(rep("gene",3),1:3)#paste0 = paste(x,y,sep='')
[1] "gene1" "gene2" "gene3"
> paste0("gene",1:3)
[1] "gene1" "gene2" "gene3"
2.4.向量筛选(取子集)--看ppt#####
> x <- 8:12
> #根据逻辑值取子集
> x[x==10]#== 是否等于
[1] 10
> x[x<12]
[1]  8  9 10 11
> x[x %in% c(9,13)]
[1] 9
> #根据位置取子集
> x[4]
[1] 11
> x[2:4]
[1]  9 10 11
> x[c(1,5)]
[1]  8 12
> x[-4]#反选
[1]  8  9 10 12
> x[-(2:4)]#反选
[1]  8 12

2.5.修改向量中的某个/某些元素:取子集+重新赋值

> x[4] <- 40
> x
[1]  8  9 10 40 12
#主动写才会出来x[x>10] <- 10
> x
[1]  8  9 10 40 12

2.6 简单向量作图

> k1 = rnorm(12);k1
 [1]  1.51178117  0.38984324 -0.62124058 -2.21469989  1.12493092 -0.04493361
 [7] -0.01619026  0.94383621  0.82122120  0.59390132  0.91897737  0.78213630
> k2 = rep(c("a","b","c","d"),each = 3);k2
 [1] "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d"
> plot(k1)
image.png
> boxplot(k1~k2) #试着搜索boxplot表达什么意思
image.png

难点--向量匹配排序:match

> x <- c("A","B","C","D","E") 
> y <- c("B","D","E","A","C") 
> match(x,y) 
[1] 4 1 5 2 3
> #生成一个向量#[1] 4 1 5 2 3 
> 
> y[match(x,y)] #根据x,调整y的顺序
[1] "A" "B" "C" "D" "E"
> #前面是模板或者标尺[1] "A" "B" "C" "D" "E" 
> x[match(y,x)] #根据y,调整x的顺序
[1] "B" "D" "E" "A" "C"
> #[1] "B" "D" "E" "A" "C"

你可能感兴趣的:(R语言学习.1-R安装及向量介绍)