RStudio学习笔记(二):向量

        在R语言中,向量类似于数学上的集合概念,由一个或多个元素构成。指用于存储数值型、字符型、逻辑型数据的一维数组。

1、向量的创建

# R语言中向量的创建可以通过函数c()

x <- c(1,2,3,4,5)						
# 存储数值型

y <- c("one","two","three")				
# 存储字符型,需要加引号,否则会认为是变量或是其他然后进行全局搜索,搜索不到会报错

z <- c(TRUE ,T,F)					
# 存储逻辑型,可以全称or缩写,不需要加引号,不能首字母大写的格式(会被当成字符串)

x0 <- c(1,2,3,"4","5")					
# 会输出为字符型,"1","2","3","4","5",因为只有同一类型的数据才能运算

2、等差数列的创建

c(1:100)   
# seq(from=1,to=100)
# 建立从1到100的等差数列		

seq(from=1,to=100,by=2)				
# 从1到100,差值为2

seq(from=1,to=100,length.out=10)		
# 输出从1到100的十个值

3、重复

rep(2,3)							
# 将数值2重复3次

rep(x,3)							
# 将向量x重复3次,其中,x <- c(1,2,3)
# 输出为 1 2 3 1 2 3 1 2 3

rep(x,each=3,times=2)				
# 将向量x重复3次,向量中每部分连续重复3次后,再开始重复下一个,上述操作重复两次
# 输出为 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3

rep(x,c(1,2,3))						
# 将向量x中的各元素按照1次、2次、3次的次数进行重复
# 输出为 1 2 2 3 3 3

4、向量元素

length(x)							
# 返回向量x的元素个数

x[1]								
# 返回向量x的第一个元素,R语言中的第一个元素从1开始,不是从0开始

x[-1]								
# 返回向量x中的除了第一个元素外的所有元素

x[c(4:19)]							
# 返回向量x中第四个到第十九个元素

x[c(1,1,23,23,49,49,25)]				
# 按照输入的元素位置返回向量中的对应元素,可以重复,可以不按顺序

注意:利用索引值时不可以正负同时输入,会产生矛盾

# 可以通过逻辑值对向量元素进行选取
# TRUE可以表示输出这个值,FALSE可以表示不输出
# 假设有数值型向量y <- c(1:10),字符型向量z <- c("one","two","three","four","five")

y[c(T,F,T,F,T,F,T,F,T,F)]					
# 输出对应位置为T的值:1 3 5 7 9

y[c(T)]							
# 输出所有值:1  2  3  4  5  6  7  8  9 10

y[c(F)]							
# 一个值不输出:integer(0),表示没有值

y[c(T,F)]							
# 按顺序一个输出,一个不输出:1 3 5 7 9

y[c(T,T,F)]							
# 按顺序,每输出两个,一个不输出:1  2  4  5  7  8 10

y[c(T,F,T,F,T,F,T,F,T,F,T)]				
# 输入十一个逻辑值,会有缺失值:	1  3  5  7  9 NA,表示第十一个值为缺失值

y[y>5 & y<9]						
# 输出y的元素值大于5且小于9的元素值:6 7 8

"one" %in% z						
# 判断向量z中是否有"one"这个元素,有,返回:TRUE

z["one" %in% z]						
# 由上一个可知,该句等同于z[c(T)],即返回全部:"one"   "two"   "three" "four"  "five" 

z %in% c("one","two")				
# 判断向量z是否在["one","two"]中,只有前两个在,返回:TRUE  TRUE FALSE FALSE FALSE 

关于向量内元素值也可以进行命名、添加等操作

# 假设有数值型向量y <- c(1:10),字符型向量z <- c("one","two","three","four","five")

names(y) <- z						
# 为向量y的每个元素命名,返回两行值,第一行是名称,第二行是元素值
# 因为z的元素个数少于y,所以y的后五个元素的第一行为NA表示缺失

y <- unname(y)						
# 去除命名,y只输出元素值一行

y["one"]							
# 通过名称返回y中的元素值,返回两行值,第一行是名称,第二行是元素值

y[11] <-11							
# 给y在第11个元素位添加元素11

y[c(11:13)] <- c(11,12,13)				
# 给y在第11,12,13个元素位添加元素11,12,13

y[20] <-20							
# 给y在第20个元素位添加元素20,但是第11到19的元素均为NA,缺失

rm(y)								
# 删除向量y,再次输入y显示找不到对象'y'

append(x = y,values = 99,after = 5)		
# 在 向量y 的 第五 元素后添加值为 99 的元素:1  2  3  4  5 99  6  7  8  9 10。
# 若after = 0 	则表示在第一位添加

y <- y[-c(1:3)]						
# 通过重新赋值的方法删除向量y的前三元素,通过新变量进行替换:4  5  6  7  8  9 10

5、向量的运算

        向量的数值运算,若两个向量元素个数相等则对应计算。
        若不等且长的向量元素个数 是 短向量元素个数的整数倍,则较短的向量循环重复使用其中的元素,比如长的10个元素,短的2个元素。
        若不等且长的向量元素个数 不是 短向量元素个数的整数倍,则报错向量不匹配,比如长的10个元素,短的3个元素。

x+y								# 对应位元素相加
x*y								# 对应位元素相乘
x**y							# 对应位元素幂次运算,x^y
y%%x							# 对应位元素取余运算			
y%/%x							# 对应位元素整除运算

# 逻辑运算
x>5								# 每个位置与5进行大小比较,返回TRUE或者FALSE
x>y								# 向量x和y的对应元素一一比对大小,返回TRUE或者FALSE
x==y							# 向量x和y的对应元素一一比对是否相等,返回TRUE或者FALSE
c(1,2,3) %in% c(1,2,2,4,5)				
# 查看左边向量中的元素是否在右边向量中存在:TRUE  TRUE FALSE

ceiling(c(-2.3,3.14))				# 返回不小于设置参数的最小整数:-2  4
floor(c(-2.3,3.14))					# 返回不大于设置参数的最小整数:-3  3
trunc(c(-2.3,3.14))					# 返回设置参数的整数部分:  	 -2  3
round(c(-2.3,3.14))					# 返回设置参数四舍五入的结果:  -2  3
round(c(-2.3,3.14),digits = 2)		# 返回设置参数四舍五入的结果,保留两位小数:-2.30  3.14
signif(c(-2.3,3.14),digits = 2)		# 返回设置参数的有效位数为2位的结果:		-2.30  3.14

6、索引值的获取

# 假设数值型向量t <- c(1,4,9,5,6,7)			
# 1 4 9 5 6 7

which.max(t)						# 返回向量t中最大元素值的索引值:3
which.min(t)						# 返回向量t中最小元素值的索引值:1
which(t == 7)						# 返回向量t中元素值=7的索引值:  6
which(t > 5)						# 返回向量t中元素值大于5的索引值:3 5 6

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

90后嫩男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值