课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p=1
本笔记参照该视频,笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容
系列笔记目录【持续更新】: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):或真或假
日期型等
普通的数据结构:
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的元素的索引值。