向量的生成
有重复的用rep(), 有规律的序列用seq(), 随机数用rnorm
rep("gene",times=3) "gene" "gene" "gene"
rep(c("a","b","c","d","e"),each=3) "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d" "e" "e" "e" (each每个重复3次)
seq(from=3,to=21,by=3) 3 6 9 12 15 18 21
rnorm(n=3) 随机生成3个数
通过组合, 产生更为复杂的向量
paste0(rep("gene",times=3),1:3)
数据类型转化的优先顺序
字符型>数值型>逻辑型
赋值符号“=”,“<-”,写在函数里面,两者不可替换。
赋值符号,快捷键Alt 加 -
赋值+输出同步运行
x <- c(1,3,5,1);x
(x <- c(1,3,5,1))
对单个向量进行的操作
median(x) 中位数
var(x) 方差
sd(x) 标准差
sum(x) 总和
x <- c(1,3,5,1)
unique(x) 去重复 不管函数出现多少次,只保留一次 1 3 5
length(x) 长度 4
duplicated(x) FALSE FALSE FALSE TRUE (是否与前面重复过)
table(x) 重复值统计
1 3 5
2 1 1
sort(x) 排序 一般默认从小打大
从大到小的排序,sort(x,decreaing=T)
2.两个向量的比较 x = c(1,3,5,1) y = c(3,2,5,6)
逻辑比较 ,生成等长的逻辑向量 x == y
x %in% y # x的元素是否在y中 FALSE TRUE TRUE FALSE
x + y 4 5 10 7
连 接
paste(x,y,sep=":") "1:3" "3:2" "5:5" "1:6"
交集:intersect(x,y) 3 5
并集:union(x,y) 1 3 5 2 6
差集:setdiff(x,y) x里面有,y里面没有的数据 1
setdiff(y,x) y里面有,x里面没有的数据 2,6
当两个向量长度不一 致:会自动补齐
x = c(1,3,5,6,2)
y = c(3,2,5)
向量筛选(取子集)
[]:将true对应的值挑选出来,false的扔掉
x<-8:12
x[x==10] x后面的中括号里的语句必须能够单独运行,能够形成逻辑值向量,并且逻辑值向量和X长度相等
x[x<12]
按照位置取子集
为什么不能写成x[1,5],因为R语言中1,5不能单独运行,必须改成c(1,5)
x[-4]:除了第四个数,其他的我都要
x[-(2:4)]:除掉2至4,保留其他数
修改向量中的某个元素:取子集+赋值
3.简单向量作图
横坐标默认为每个数值