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
数据类型:
数值型:数值可以用于直接结算,加减乘除
字符串型(character):可以进行连接、转换、提取等
逻辑型(logical):或真或假
日期型等
8、 日期?
特殊数据结构:
perl中的哈希,python中的字典,c语言中的指针等。
R对象:
object, 他是指可以赋值给变量的任何事物,包括常量,数据结构,函数,甚至图形。
对象都拥有某种模式,描述了此对象是如何存储的,以及某个类。
向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。
用函数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))
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个元素。
注意:不能同时有正负索引。
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)
可以使用names函数为【向量的每个元素】添加名称。
如:
y <- c(1:10)
输出的y有两行,一行是元素名称,称为属性;一行是元素值,称为value。
可以通过每个元素的name访问它的值。 如:y[“two”]:输出对应的值2。
y <- y[-c(1:3)]:删除向量中第1到3的元素。
y[-c(1:3)] 代表 输出除了第1~3个元素之外的所有元素
"*"为乘法运算
"**"为幂运算
"%%"求余运算
"%/%"为整除运算
长向量的长度必须是短向量长度的整倍数,否则,报错。运算时短向量被循环使用。
数学函数:
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的元素的索引值。