向量
向量,vector,是R中最重要的一个概念,它是构成其他数据结构的基础。R中的向量概念与数学中的向量是不同的,类似于数学上的集合的概念,由一个或多个元素所构成。
向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。
用函数c来创建向量。c代表concatenate连接,也可以理解为收集collect,或者合并combine。 总之要用字母c来连接。
创建向量:
1.c(1,2,3,4,5) 创建数值型向量
2.c("one","two","three") 创建字符型向量,必须要加引号,在R中,不加引号,就会把它们当成对象,比如变量或者函数,然后在整个软件中去搜索,搜索不到就会提示对象找不到,报错。即不加引号,R会把你当成内部人,加引号表示你是外部的。
3.c(TRUE,T,F,FALSE) 创建逻辑型向量,大写的TRUE和FALSE,也可以写成大写的T,F。必须是全大写,不能单纯是首字母大写,否则会被当成字符串,就不是逻辑型了。
4.c(1:100) 创建1到100的等差数列; seq(from=1,to=100,by=2)创建1到100,公差为2的方差的等差数列; seq(from=1,to=100,length.out=10) 创建1到100,共输出10个数值的等差数列。
length(x) 确定x向量中元素的个数。
5.rep(2,4) 创建重复序列,生成4个2.
rep(x,each=4),x中的每个对象,都一次重复4遍。
rep(x,each=4,times=2)重复
每个值循环不一样的次数,则如下操作:
times中的参数,即c(2,3,5,6,7),出现的参数要和变量中的数据一一对应,否则报错;如果某个数据不用重复则可以用0代替,但必须要有才行。
6.向量的内容只能有一种数据类型,例如数值,字符串等。因为同一类型才能进行计算.向量化编程。
mode(a) 可以查看向量类型。
7.序列运算,x乘以2加上y,得结果如下:
8.取出x中大于3的数值:
向量的索引
1.正(负)整数索引
length(x) 确定x向量的元素个数
x[1] 访问向量x的第一个元素,数值超过元素总个数,则输出NA。
x[-1] 不输出第一个元素,负值的绝对值超过元素总个数,则全部输出。 x[1.6]则输出第一个元素,即输出该值对应的整数部分,负值也是一样,不输出整数部分对应的元素。
x[数值向量],例如:x[c(5:18)]
但是,向量中同时出现负数和正数,则输出错误。
2.逻辑向量索引
TRUE则输出,FALSE则不输出; 类似if语句的使用。
如果逻辑词与元素一一对应,则直接输出,否则按照循环依次输出。
y[y>8] 输出y大于8的值。y[y>4 & y<8] 输出y大于4小于8的值。
访问向量:
3.名称索引
names()函数给每个元素添加一个名字
然后根据名称,索引对应元素
4.添加向量
在第几位元素添加对应值,使用赋值即可,该方法可以用于替换向量中的某一个元素,但是替换的元素最好是同一数据类型:
添加元素
删除向量 rm(b)
删除向量中的某个元素:采用负整数的方式,使其不输出,再赋值给对应向量:
向量运算
加减乘除运算,然后赋值给对应向量即可:
两向量运算
向量元素个数不同,则短向量重复使用,直到长向量运算完毕,但是需要长向量的元素个数是短向量元素个数的倍数
逻辑运算
%in% 判断逻辑性,即左边的向量的元素是否在右边向量中存在;
测试两个向量是否一样,可以用 == 判断: