前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >岩酱的生信学习笔记DAY9—R语言数据结构(向量)

岩酱的生信学习笔记DAY9—R语言数据结构(向量)

原创
作者头像
用户11074124
发布2024-05-10 00:32:03
510
发布2024-05-10 00:32:03

R语言向量

代码语言:R
复制
> x <-c(1:5)#对向量复制括号前一定要加c,1:5快捷表示
> x
[1] 1 2 3 4 5
> y<- c("one","two","three","four","five")#对字符串一定要加引号
> y
[1] "one"   "two"   "three" "four"  "five" 

构建等差数列、重复数列

代码语言:R
复制
> seq(from=1,to=100,by=2)#从1到100,通过2来排序
 [1]  1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
[31] 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
> seq(from=1,to=100,length.out= 10)#列出长度为10的等差序列
 [1]   1  12  23  34  45  56  67  78  89 100
> rep(2,5)#重复2,5次
[1] 2 2 2 2 2
> rep(x,5)#重复x向量,5次
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
> rep(x,each=5)#重复x向量,每个值重复5次
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
> rep(x,each=5,times=2)#重复x向量,每个值重复5次,次数为2
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
[46] 5 5 5 5 5
> rep(x,c(1,2,3,4,5))#将x向量按括号中的数字进行次数重复
 [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

向量的索引

正(负)整数索引

代码语言:R
复制
> x<-c(1:10)
> length(x)#函数length计算向量的长度
[1] 10
> x[1]#通过方括号来检索查找向量中第几位的值
[1] 1
> x[-1]#列出除了第1位所有的值
[1]  2  3  4  5  6  7  8  9 10
> x[c(1:6)]#通过向量c来快速筛选1-6位的值
[1] 1 2 3 4 5 6
> x[c(1,2,1,1,2,3)]#可以多次重复列出第几位的值
[1] 1 2 1 1 2 3

逻辑向量索引

代码语言:R
复制
> y<-c(1:10)
> y[c(T,F,T,F,T,T,T,T,T,T)]#只输出向量中TRUE的值
[1]  1  3  5  6  7  8  9 10
> y[c(T)]#循环输出TRUE所有的值
 [1]  1  2  3  4  5  6  7  8  9 10
> y[c(T,F)]#循环输出对错对错的值
[1] 1 3 5 7 9
> y[c(T,F,F)]
[1]  1  4  7 10
> y[c(T,F,T,F,T,T,T,T,T,T,T)]#当多一个逻辑次是,会显示空白NA
[1]  1  3  5  6  7  8  9 10 NA
> y[y>5]#检索大于5的值
[1]  6  7  8  9 10
> y[y>5 & y<9]#通过&来合并两个检索命令
[1] 6 7 8
> z<-c("one","two","three","four","five")
> "one" %in% z#使用 %in%来检索字符串one是否在向量z中,有则返还TURE
[1] TRUE
> z[z %in% c("one","two")]#加方括号列出检索出来的字符串
[1] "one" "two"
> z %in% c("one","two")
[1]  TRUE  TRUE FALSE FALSE FALSE
> 

名称索引

代码语言:R
复制
> y<-c(1:5)
> y
[1] 1 2 3 4 5
> names(y)<-c("one","two","three","four","five")#使用names函数来对向量的每个值来命名
> y
  one   two three  four  five 
    1     2     3     4     5 
> y["one"]#通过搜索名称来索引值
one 
  1 

修改向量,添加删除数据

代码语言:R
复制
> x<-c(1:10)
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x[11]<-11#通过方括号对还没有的位置进行赋值
> x
 [1]  1  2  3  4  5  6  7  8  9 10 11
> v<-c(1:3)
> v[c(4,5,6)]<-c(4,5,6)#通过向量将两个向量连接
> v
[1] 1 2 3 4 5 6
> v[20]<-20#当赋值的地方超过已有的,没有赋值的地方表示为NA
> v
 [1]  1  2  3  4  5  6 NA NA NA NA NA NA NA NA NA NA NA NA NA 20
> append(v,9,after = 8)#对向量v在第8位后面赋值9
 [1]  1  2  3  4  5  6 NA NA  9 NA NA NA NA NA NA NA NA NA NA NA 20
> v[2]<-4#直接对第几位向量进行赋值修改
> v
 [1]  1  4  3  4  5  6 NA NA NA NA NA NA NA NA NA NA NA NA NA 20

向量计算

代码语言:R
复制
> x<-c(1:10)
> x+1
 [1]  2  3  4  5  6  7  8  9 10 11
> x-3
 [1] -2 -1  0  1  2  3  4  5  6  7
> x*1
 [1]  1  2  3  4  5  6  7  8  9 10
> x*2
 [1]  2  4  6  8 10 12 14 16 18 20
 > y<-seq(from=1,to=100,length.out=10)
> y
 [1]   1  12  23  34  45  56  67  78  89 100
> x+y
 [1]   2  14  26  38  50  62  74  86  98 110
> x*y
 [1]    1   24   69  136  225  336  469  624  801 1000
> x**2#两个星号代表次方
 [1]   1   4   9  16  25  36  49  64  81 100
 > x%%2#两个百分号代表余数
 [1] 1 0 1 0 1 0 1 0 1 0
> x%/%2
 [1] 0 1 1 2 2 3 3 4 4 5
> z<-c(1,2)
> x+z#当两个向量长度不一样时,短的向量就会被循环运算到长向量中
 [1]  2  4  4  6  6  8  8 10 10 12
> x*z
 [1]  1  4  3  8  5 12  7 16  9 20
> z[3]<-3
> z
[1] 1 2 3
> x+z#当长短向量不是背书关系时,就会报错
 [1]  2  4  6  5  7  9  8 10 12 11 #Warning message:#In x + z : 长的对象长度不是短的对象长度的整倍数
> x>5
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
> x>=5#x大于等于5
 [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
> x %in% y#表示左边的向量在右边的向量中检索
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 > c(1,2,3) %in% c(1,2,4,24)
[1]  TRUE  TRUE FALSE
> x ==y#两个等号就是判断是否相等,一个等号就是直接赋值
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R语言向量
    • 向量的索引
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档