数据挖掘20210105学习笔记

2021-02-10  本文已影响0人  爱吃甜品的鱼

对单个向量进行的操作

(1)赋值给一个变量名,用“=”或“<-”

> x=c(1,2,3,4,5,6)  #()中的每个数为向量的元素
> x
[1] 1 2 3 4 5 6
> x<-c(1,2,3,4,5,6)  #<-的快捷键为Alt加-
> x
[1] 1 2 3 4 5 6

(2)简单数学计算

> x+10
[1] 11 12 13 14 15 16
>sqrt(x)  #求开方

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

> x>5
[1] FALSE FALSE FALSE FALSE FALSE  TRUE
> x==3   #==用来判断是否相等
[1] FALSE FALSE  TRUE FALSE FALSE FALSE
> x!=3   #!=用来判断是否不相等
[1]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE

(4)初级统计

>x<-c(1,2,2,3,5,6,5)
>max(x)     #最大值
>min(x)     #最小值
>mean(x)    #平均值
>median(x)  #中位数
>var(x)     #方差
>sd(x)      #标准差
>sum(x)     #求和

> length(x)  #长度,指向量里的长度个数
[1] 7
> unique(x)  #去重复,只保留第一次出现的元素
[1] 1 2 3 5 6
> duplicated(x)  #查重,判断哪个元素重复出现,返回与 x 长度相等的逻辑值向量
[1] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
> table(x)  # 重复值统计
x
1 2 3 5 6 
1 2 1 2 1 
> sort(x)   #排序,默认从小到大排。从大到小排需加(decreasing=T)
[1] 1 2 2 3 5 5 6

对两个向量进行的操作

> x<-c(1,3,5,1)
> y<-c(3,2,5,6)

(1)逻辑比较,生成等长的逻辑向量

> x==y     #判断x和对应位置的y是否相等(不与其他元素比较)
[1] FALSE FALSE  TRUE FALSE
> x%in%y   #判断x的每个元素在y中是否存在(返回值的个数取决于x)
[1] FALSE  TRUE  TRUE FALSE
> y%in%x   #判断y的每个元素在x中是否存在(返回值的个数取决于y)
[1]  TRUE FALSE  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)
[1] "1 3" "3 2" "5 5" "1 6"
> paste0(x,y)   #paste(x,y,sep="")等同于paste0(x,y)   
[1] "13" "32" "55" "16"

(4)交集、并集、差集

> intersect(x,y)    #交集,默认去重复
[1] 3 5
> union(x,y)        #并集,默认去重复
[1] 1 3 5 2 6
> setdiff(x,y)      #差集,在x里存在,在y里不存在
[1] 1
> setdiff(y, x)     #差集,在y里存在,在x里不存在
[1] 2 6

当两个向量长度不一样 , “循环补齐”

> x<-c(1,3,5,6,2)
> y<-c(3,2,5)
> x==y    #短的循环补齐长的
[1] FALSE FALSE  TRUE FALSE  TRUE
循环补齐

利用循环补齐简化代码

> paste0(rep("gene",3), 1:3)
[1] "gene1" "gene2" "gene3"
> paste0("gene", 1:3)
[1] "gene1" "gene2" "gene3"

向量筛选(取子集)将TRUE对应的值挑选出来,FALSE对应的舍弃

1.根据逻辑值,[ ]里应能单独运行,将TRUE对应的值能挑选,即具有逻辑值(如x<7)
> x<-c(1,3,5,7,8)
> x>5
[1] FALSE FALSE FALSE  TRUE  TRUE
> x[x>5]
[1] 7 8
2.根据位置,[ ]里是由x的下标组成的向量
> x[4]
[1] 7
> x[2:4]
[1] 3 5 7

修改向量中的某个、某些元素

> x<-1:10
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x[5]<-11   #取子集加赋值
> x
 [1]  1  2  3  4 11  6  7  8  9 10

向量作图

> k1<-rnorm(12)
> k1
 [1]  0.97345359  0.01859987  0.23110057  0.21045904 -0.06404520 -1.15701867
 [7]  1.02837091 -1.96591605  0.09879417 -0.41808639 -0.45841582  0.45912581
> 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)
> boxplot(k1~k2)

向量匹配排序-match

> x<-c("A","B","C","D","E")
> y<-c("B","D","E","A","C")
> match(x,y)    #根据x的模板调整y的顺序,返回值是y的下标
[1] 4 1 5 2 3
> y[match(x,y)]  #谁在外面,谁就在后面
[1] "A" "B" "C" "D" "E"
上一篇下一篇

猜你喜欢

热点阅读