文章目录
一、常量与变量
1.1 常量
1.2变量
在R中,变量可以保存所有的数据类型,比如标量、向量、矩阵、数据框、函数等。
1.3 R数据类型
R语言基本的数据类型有数值,逻辑型(TRUE,FALSE),文本(字符串)。
R语言数据结构包括向量,矩阵和数据框,多维数组,列表,对象等。最基本的是向量类型。
二、数值型向量及其运算
2.1 数值型向量
向量是将若干个基础类型相同的值存储在一起,各个元素可以按序号访问。如果将若干个数值存储在一起可以用序号访问,就叫做一个数值型向量。
用c() 函数把多个元素或向量组合成一个向量。
如 x = c(10,6,4,7,8)
length(x)可以求x的长度
numeric()函数可以用来初始化一个指定元素个数而元素都等于0的数值型向量,如numeric(10)会生成元素为10个0的向量。
2.2 向量运算
2.2.1 标量和标量运算
R中四则运算用+ - * / ^(加、减、乘、除、乘方),%/%表示整除,%%表示求余
2.2.2 向量与标量运算
向量与标量的运算为每个元素与标量的运算,如
x <- c(1,10)
x + 2
## [1] 3 12
2.2.3 等长向量运算
等长向量的运算为对应元素的两两运算
2.2.4 不等长向量的运算
两个不等长向量的四则运算,如果其长度为倍数关系,规则是每次从头重复利用短的一个
2.3 向量函数
2.3.1 向量化的函数
R中的函数一般都是向量化的:在R中,如果普通的一元函数以向量为自变量,一般会对每个元素计算。这样的函数包括sqrt,log10,log,exp,sin,cos,tan等许多。
sqrt(c(1,4,6.25))
## [1] 1.0 2.0 2.5
2.3.2 排序函数
sort(x)返回排序结果。rev(x)返回把各元素排列次序反转后的结果。order(x)返回排序用的下标。
x <- c(33, 55, 11)
sort(x)
## [1] 11 33 55
rev(sort(x))
## [1] 55 33 11
order(x)
## [1] 3 1 2
x[order(x)]
## [1] 11 33 55
2.3.3 统计函数
sum(求和),mean(求平均值) ,var(求样本方差),sd(求样本标准差),min(求最小值),max(求最大值),range(求最小值和最大值)等函数称为统计函数,把输入向量看作样本,计算样本统计量。prod求所有元素的乘积。
comsum和cumprod计算累加和累乘积。如
cumsum(1:5)
## [1] 1 3 6 10 15
cumprod(1:5)
## [1] 1 2 6 24 120
2.3.4 生成规则序列的函数
seq函数时冒号运算符的推广。比如,seq(5)等同于1:5,seq(11,15,by=2)产生11,13,15
rep函数用来产生重复数值。rep(c(1,3),2)把第一个自变量重复两次,结果相当于c(1,3,1,3)。
rep(c(1,3),c(2,4))相当于c(1,1,3,3,3,3)。
rep(c(1,3),each=2))结果相当于c(1,1,3,3)
2.4 复数向量
三、逻辑型向量及其运算
3.1 逻辑型向量与比较运算
逻辑型是R的基本数据类型之一,只有两个值TRUE和FALSE,缺失时为NA。
可用is.na()函数判断向量每个元素是否NA。
is.na(c(1,NA,3)>2)
## [1] FALSE TRUE FALSE
用is.finite()判断向量每个元素是否Inf值
比较运算符包括 < <= > >= == != %in%
注:%in%是比较特殊的比较, x %in% y的运算把向量y看成集合,运算结果是一个逻辑型向量。
c(1,3) %in% c(NA,3,4)
## [1] FALSE TRUE
函数match(x,y)起到和x %in% y 运算类似的作用,但是其返回结果不是找到与否,而是对x的每个元素,找到其在y中首次出现的下标,找不到时取缺失值,如
match(c(1,3),c(2,3,4,3))
## [1] NA 2
3.2 逻辑运算
逻辑运算符为&,|和!,分别表示“同时成立”、“两者至少其一成立”、“条件的反面”
3.3 逻辑运算函数
若cond是逻辑向量,用all(cond)测试cond的所有元素为真;用any(cond)测试cond至少一个元素为真
all(c(1, NA, 3) > 2)
## [1] FALSE
any(c(1, NA, 3) > 2)
## [1] TRUE
函数which()返回真值对应的所有下标。如
which(c(FALSE,