R语言笔记二:向量、向量索引及其运算

    技术2025-08-23  12

    1.内置数据集 R中的内置数据集存储在datasets这个包中,这些数据一般搜集于真实的调查数据。 help(package=“datasets”):查看数据集包。 data():列出所有数据集。 直接输入数据集名字,就可以使用该数据集。这些内置数据集的名字都是默认的,我们在创建变量的时候最好不要与内置数据集的名字重叠。

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

    R中的数据结构: 3.向量 向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。 用函数c来创建向量。c代表concatenate连接,也可以理解为收集collect,或者合并combine。 如:x<-c(1,2,3,4,5) y<-c(“one”,“two”,“three”) z<-c(TRUE,T,F) 注意:一个向量中所有数值的数据类型都必须是同一类型。

    seq(from=1,to=100,by=2):生成1到100的公差为2的序列。 seq(from=1,to=100,length.out=10):生成1到100之间的10个数。 rep(x,5):将x变量的值重复5次。

    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))

    4.向量索引 (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)]:输出逻辑值为真的元素。(结果为1 3 4 7 8 9) y[c(T)]:所有元素为真,输出所有元素。 y[c(T,F)]:按照T,F循环判断输出。结果为(1 3 5 7 9) 注意:如果有11个逻辑值,那么多出的部分会显示NA 。 y[y>5 & y<9]:输出向量y中大于5小于9的元素。(结果为6 7 8)

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

    (3)名称索引 可以使用names函数为向量的每个元素添加名称。 如: y<-c(1:10) names(y)<-c(“one”,“two”,“three”,“four”,“five”,“six”,“seven”,“eight”,“nine”,“ten”) 输出y的结果为: 输出的y有两行,一行是元素名称,称为属性;一行是元素值,称为value。可以通过每个元素的name访问它的值。 如:y[“two”]:输出对应的值2。

    向量修改: v<-1:3 v[c(4,5,6)]<-c(4,5,6) v[20]<-4 append(x=v,values=99,after=5):在元素5和6之间插入一个值99。 append(x=v,values=99,after=0):在向量头部插入数据99。 y<-y[-c(1:3)]:删除向量中第1到3的元素。

    5.向量运算 (1)两向量长度相等 **:乘幂运算 %%:求余运算 %/%:整除运算 (2)两向量长度不相等 长向量的长度必须是短向量长度的整倍数,否则,报错。运算时短向量被循环使用。 (3)向量的逻辑运算 ==:一一判断两个向量的元素是否相等。 %in%:判断左边向量的元素是否在右边向量中。 (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的元素的索引值。

    Processed: 0.012, SQL: 9