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中的数据类型、数据结构
  • 2.向量
  • 3.向量索引
    • (1)正负整数索引 (和c语言的数组一样的格式,只是r语言下标从1开始)
    • (2)逻辑向量索引
    • (3)名称索引
  • 4.向量修改
  • 5.向量运算
    • (1)两向量长度相等
    • (2)两向量长度不相等
    • (3)向量的逻辑运算
    • (4)向量运算函数

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

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

普通的数据结构:
2. 数据类型、向量、向量索引、向量修改、向量运算_第1张图片

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个数。
第三个参数默认是步长
2. 数据类型、向量、向量索引、向量修改、向量运算_第2张图片

rep():
x<-c(1,2,3,4,5)
rep(x,5):将x变量的值重复5次。
可以用each来控制一个元素的重复次数
2. 数据类型、向量、向量索引、向量修改、向量运算_第3张图片

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))
2. 数据类型、向量、向量索引、向量修改、向量运算_第4张图片



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)
2. 数据类型、向量、向量索引、向量修改、向量运算_第5张图片


%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)
2. 数据类型、向量、向量索引、向量修改、向量运算_第6张图片

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



4.向量修改

2. 数据类型、向量、向量索引、向量修改、向量运算_第7张图片


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

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



5.向量运算

(1)两向量长度相等

"*"为乘法运算
"**"为幂运算
"%%"求余运算
"%/%"为整除运算
2. 数据类型、向量、向量索引、向量修改、向量运算_第8张图片

(2)两向量长度不相等

长向量的长度必须是短向量长度的整倍数,否则,报错。运算时短向量被循环使用。
2. 数据类型、向量、向量索引、向量修改、向量运算_第9张图片

(3)向量的逻辑运算

==:一一判断两个向量的元素是否相等。
2. 数据类型、向量、向量索引、向量修改、向量运算_第10张图片

(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):计算分位数。
2. 数据类型、向量、向量索引、向量修改、向量运算_第11张图片

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

2. 数据类型、向量、向量索引、向量修改、向量运算_第12张图片

你可能感兴趣的:(R语言,r语言,开发语言)