2. 数据类型、向量、向量索引、向量修改、向量运算

b站课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p=1
腾讯课堂(最新,但是要花钱,我花99元😢😢买了,感觉不错):https://ke.qq.com/course/3707827#term_id=103855009
 
本笔记前面的笔记参照b站视频,后面的笔记参考了付费视频
笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容,以及补充了个人理解
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html

1.R中的数据类型、数据结构

数据类型:
数值型:数值可以用于直接结算,加减乘除
字符串型(character):可以进行连接、转换、提取等
逻辑型(logical):或真或假
日期型等

普通的数据结构:
在这里插入图片描述

8、 日期?

特殊数据结构:
perl中的哈希,python中的字典,c语言中的指针等。

R对象:
object, 他是指可以赋值给变量的任何事物,包括常量,数据结构,函数,甚至图形。
对象都拥有某种模式,描述了此对象是如何存储的,以及某个类。


2.向量

向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。
用函数c来创建向量。c代表concatenate连接,也可以理解为收集collect,或者合并combine。
如:

x<-c(1,2,3,4,5)  
y<-c(“one”,“two”,“three”)  
z<-c(TRUE,T,F)  

注意:一个向量中所有数值的数据类型都必须是同一类型。

等差数列seq():
seq(from=1,to=100,by=2):生成1到100的公差为2的序列。
seq(from=1,to=100,length.out=10):生成1到100之间的10个数。
第三个参数默认是步长
在这里插入图片描述

rep():
x<-c(1,2,3,4,5)
rep(x,5):将x变量的值重复5次。
可以用each来控制一个元素的重复次数
在这里插入图片描述

x<-c(1,2,3,4,5)
y<-c(6,7,8,9,10)
向量相加:x*2+y
输出向量x中值大于3的数值: x[x>3]
控制向量x中每个数的重复次数:rep(x,c(2,4,6,1,3))
在这里插入图片描述



3.向量索引

(1)正负整数索引 (和c语言的数组一样的格式,只是r语言下标从1开始)

x <- c(1:100)
x[1]:返回x向量中的第1个值。
x[-19]:输出除了第19个元素之外的所有元素。
x[c(4:18)]:输出第4到18个元素。
x[c(1,23,45)]:输出第1、23、45个元素。
注意:不能同时有正负索引。

(2)逻辑向量索引

y <- c(1:10)
y[c(T,F,T,T,F,F,T,T,T,F)]:输出逻辑值为真的元素 。注意:数组大小为10时,如果有11个逻辑值,那么多出的部分会显示NA 。
y[c(T)]:所有元素为真,输出所有元素。
y[c(T,F)]:按照T,F循环判断输出。结果为(1 3 5 7 9)
y[y>5 & y<9]:输出向量y中大于5小于9的元素。(结果为6 7 8)
在这里插入图片描述


%in%:表示元素是否在向量中。
如:
z <- c(“one”,“two”,“three”,“four”,“five”)
“one” %in% z:返回TRUE。
z %in% c(“one”,“two”):判断z中元素是否在向量(“one”,“two”)中。(返回TRUE TRUE FALSE FALSE FALSE)

(3)名称索引

可以使用names函数为【向量的每个元素】添加名称
如:
y <- c(1:10)
在这里插入图片描述

输出的y有两行,一行是元素名称,称为属性;一行是元素值,称为value。
可以通过每个元素的name访问它的值。 如:y[“two”]:输出对应的值2。



4.向量修改

在这里插入图片描述


y   <-   y[-c(1:3)]:删除向量中第1到3的元素。

y[-c(1:3)] 代表 输出除了第1~3个元素之外的所有元素



5.向量运算

(1)两向量长度相等

"*"为乘法运算
"**"为幂运算
"%%"求余运算
"%/%"为整除运算
在这里插入图片描述

(2)两向量长度不相等

长向量的长度必须是短向量长度的整倍数,否则,报错。运算时短向量被循环使用。
在这里插入图片描述

(3)向量的逻辑运算

==:一一判断两个向量的元素是否相等。
在这里插入图片描述

(4)向量运算函数

数学函数:
x <- c(1:6)
y <- c(-2.13,3.1415)

abs(x):返回向量x的绝对值。  
sqrt(x):取平方根。  
log(x,base=2):取对数,base为底数。不加底数,默认为自然对数。  常见的以10为底的对数直接写log10(x)。  
exp(x):计算以自然常数e为底的指数。 
 
ceiling(y):不小于y的最小整数。  
floor(y):不大于y的最小整数。  

trunc(y):返回整数部分。  
round(y,digits=2):四舍五入,digits表示要保留的小数位数。默认取整。  
signif(y,digits=2):四舍五入,保留有效数字,digits表示保留的有效数字位数。  
sin(x):求正弦。  
cos(x):求余弦。

统计函数:
vec <- 1:100
sum(vec):求和。
max(vec):求最大值。
min(vec):求最小值。
range(vec):返回最小值和最大值。
mean(vec):返回平均值。
var(vec):返回向量方差。
sd(vec):返回向量的标准差。
prod(vec):返回向量连乘的积。
median(vec):计算中位数。
quantile(vec):计算分位数。
在这里插入图片描述

有时候不仅关注向量中的值,还关注向量中的位置,也就是索引值。
这时候可以时候which系列的函数,其返回的不是具体值,而是索引值【也就是在向量的位置】
t <- c(1,4,2,5,7,9,6)
which.max(t):返回最大值的索引值。
which.min(t):返回最小值的索引值。
which(t==7):返回t向量中值为7的元素的索引值。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你说的白是什么白_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值