前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阿榜的生信笔记

阿榜的生信笔记

原创
作者头像
用户10480134
发布2023-04-13 21:09:55
4730
发布2023-04-13 21:09:55
举报
文章被收录于专栏:黄金榜黄金榜
代码语言:text
复制
#####2.3.对两个向量进行的操作#####
x = c(1,3,5,1)
y = c(3,2,5,6)
#(1)比较运算,生成等长的逻辑向量
x == y        ##以x为主体进行比较
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE
代码语言:text
复制
y == x        ##以y为主体进行比较
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE
代码语言:text
复制
#(2)数学计算
x + y         ##x,y对应向量进行加法运算
代码语言:txt
复制
## [1]  4  5 10  7
代码语言:text
复制
#(3)连接
paste(x,y,sep=",")  ##x,y对应向量进行合并,以“,”为分隔符
代码语言:txt
复制
## [1] "1,3" "3,2" "5,5" "1,6"
代码语言:text
复制
#paste与paste0的区别
paste(x,y)
代码语言:txt
复制
## [1] "1 3" "3 2" "5 5" "1 6"
代码语言:text
复制
paste0(x,y)
代码语言:txt
复制
## [1] "13" "32" "55" "16"
代码语言:text
复制
paste(x,y,sep = "")
代码语言:txt
复制
## [1] "13" "32" "55" "16"
代码语言:text
复制
paste(x,y,sep = ",")
代码语言:txt
复制
## [1] "1,3" "3,2" "5,5" "1,6"
代码语言:text
复制
##这有一个记忆方法可以帮助你理解paste与paste0的区别:
##paste()是绅士,懂得两者之间保持距离。paste0()是渣男,无缝衔接
#当两个向量长度不一致
x = c(1,3,5,6,2)
y = c(3,2,5)
x == y # 啊!warning!
代码语言:txt
复制
## Warning in x == y: longer object length is not a multiple of shorter object length
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE  TRUE
代码语言:text
复制
#循环补齐进行帮忙,如下图所示

![请在此添加图片描述](https://ask8088-private-1251520898.cos.ap-guangzhou.myqcloud.com/developer-images/article/10480134/h3qnhlbcu0.png?q-sign-algorithm=sha1&q-ak=AKID2uZ1FGBdx1pNgjE3KK4YliPpzyjLZvug&q-sign-time=1681391262;1681398462&q-key-time=1681391262;1681398462&q-header-list=&q-url-param-list=&q-signature=6d0db4a5f555c6ede4f5e94af592c435f205b803) 
#利用循环补齐简化代码,能省的都省了。代码简洁但有点难理解:x重复三次(因为1:3,R语言默认循环补齐,因此最后一行代码省略了3)
paste0(rep("x",3),1:3)
代码语言:txt
复制
## [1] "x1" "x2" "x3"
代码语言:text
复制
paste0("x",1:3)
代码语言:txt
复制
## [1] "x1" "x2" "x3"
代码语言:text
复制
#(4)交集、并集、差集
intersect(x,y)
代码语言:txt
复制
## [1] 3 5 2
代码语言:text
复制
union(x,y)
代码语言:txt
复制
## [1] 1 3 5 6 2
代码语言:text
复制
setdiff(x,y)     ##以x为主体,y进行参照,输出x的剩余部分
代码语言:txt
复制
## [1] 1 6
代码语言:text
复制
setdiff(y,x)     ##以y为主体,x进行参照,输出y的剩余部分
代码语言:txt
复制
## numeric(0)
代码语言:text
复制
x %in% y #以x为主体,检验x的每个元素在y中存在吗
代码语言:txt
复制
## [1] FALSE  TRUE  TRUE FALSE  TRUE
代码语言:text
复制
y %in% x #以y为主体,检验y的每个元素在x中存在吗
代码语言:txt
复制
## [1] TRUE TRUE TRUE
代码语言:text
复制
##请问你知道x==y与x%in%y的区别吗?大家可以尝试下:
x==y
代码语言:txt
复制
## Warning in x == y: longer object length is not a multiple of shorter object length
代码语言:txt
复制
## [1] FALSE FALSE  TRUE FALSE  TRUE
代码语言:text
复制
x %in% y 
代码语言:txt
复制
## [1] FALSE  TRUE  TRUE FALSE  TRUE
代码语言:text
复制
#####2.4.向量筛选(取子集)#####
##向量取子集有两种方法:格式x[]
x <- 8:12;x
代码语言:txt
复制
## [1]  8  9 10 11 12
代码语言:text
复制
#根据逻辑值取子集:中括号里是与x等长且一一对应的逻辑值向量
x[x == 10]
代码语言:txt
复制
## [1] 10
代码语言:text
复制
x[x < 12]
代码语言:txt
复制
## [1]  8  9 10 11
代码语言:text
复制
x[x %in% c(9,13)]
代码语言:txt
复制
## [1] 9
代码语言:text
复制
#根据位置取子集:中括号里是由x的下标组成的向量
x[4]
代码语言:txt
复制
## [1] 11
代码语言:text
复制
x[2:4]
代码语言:txt
复制
## [1]  9 10 11
代码语言:text
复制
x[c(1,5)]
代码语言:txt
复制
## [1]  8 12
代码语言:text
复制
x[-4]
代码语言:txt
复制
## [1]  8  9 10 12
代码语言:text
复制
x[-(2:4)]
代码语言:txt
复制
## [1]  8 12
代码语言:text
复制
####2.5.修改向量中的某个/某些元素:提取相应子集+进行子集赋值
x
代码语言:txt
复制
## [1]  8  9 10 11 12
代码语言:text
复制
#改一个元素
x[4] <- 40
x
代码语言:txt
复制
## [1]  8  9 10 40 12
代码语言:text
复制
#改多个元素
x[c(1,5)] <- c(80,20)
x
代码语言:txt
复制
## [1] 80  9 10 40 20
代码语言:text
复制
##R语言里的修改都要赋值,不赋值就相当于没有发生过,只是在控制台打出来看了看
代码语言:text
复制
#### 2.6 简单向量作图
k1 = rnorm(12);k1
代码语言:txt
复制
##  [1] -0.2439146  1.4775091 -0.5332675  0.7483490 -1.4304489  0.3982357  0.7763490  0.3547473  0.1392060 -0.2189168
## [11] -0.6352465 -0.5570891
代码语言:text
复制
k2 = rep(c("a","b","c","d"),each = 3);k2##观察比较下rep()参数each和times的不同
代码语言:txt
复制
##  [1] "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d"
代码语言:text
复制
plot(k1)
代码语言:text
复制
boxplot(k1~k2) #boxplot()画出箱型图

引用自生信技能树小洁老师

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档