单个向量中的数据类型要求必须是相同的类型,同一个向量当中无法混杂不同类型的数据;
向量赋值
1)左键头赋值
> x <- c(1,3,5,7,9)
> x
[1] 1 3 5 7 9
2)assign函数对向量进行赋值
例子:
> assign("w",c(1,3,5,7,9))
> w
[1] 1 3 5 7 9
3)还可以用右键头进行赋值:
例子:
> c(1,3,5,7,9) -> y
> y
[1] 1 3 5 7 9
向量
向量长度:R语言中向量的个数称为向量的长度,个数为1的向量就是常数;
函数length可以返回向量的长度
向量间的运算
1)乘法运算
2)除法运算
3)取余
4)取整
> x <- c(1,3,5,7,9)
> c(1,3,5,7,9)-> y
> x*y
[1] 1 9 25 49 81
> x/y
[1] 1 1 1 1 1
> x^2
[1] 1 9 25 49 81
> y^x
[1] 1 27 3125 823543 387420489
> 5%/%3
[1] 1
> 5%%3
[1] 2
mode返回数据的类型
min返回数据的最小值
max返回数据的最大值
rang(x):表示x的变化范围从1到9
Which.min和which.max返回在第几个分量上获得最小最大的值
> numbers <- c(1,3,5,6,9)
#在哪个位置上取得最小值
> which.min(numbers)
[1] 1
#在哪个位置上取得最大值
> which.max(numbers)
[1] 5
R产生正则序列
最简单的使用冒号产生有规律的序列:
(加上括号就可以直接被输出)
例1:
> (t<-1:10)
[1] 1 2 3 4 5 6 7 8 9 10
> t <- 1:10
> t
[1] 1 2 3 4 5 6 7 8 9 10
也可以倒着输出
> (t <- 10 :1)
[1] 10 9 8 7 6 5 4 3 2 1
在表达式的运算中,”:”即冒号的表达式是最高的;
> 2*1:5
[1] 2 4 6 8 10
函数SEQ(sequence)序列:序列分为三个部分
1)从哪开始
2)到哪截止
3)步长
例:序列从1开始,到10结束,步长为2
> seq(1,10,2)
[1] 1 3 5 7 9
如果不指定步长,则使用默认步长为1;
> seq(1,10)
[1] 1 2 3 4 5 6 7 8 9 10
还可以让步长为负数,可以理解为倒着走(已步长为公差的递减序列)
> seq(10,1)
[1] 10 9 8 7 6 5 4 3 2 1
> seq(10,1,-2)
[1] 10 8 6 4 2
注意:步长可以用by也可以不写by;
有时情况比较特殊,我们需要关心数列的长度,这时:
例:从1开始,步长为2,输出10个数
> seq(1,by=2,length=10)
[1] 1 3 5 7 9 11 13 15 17 19
用各种复杂的方式来重复一个对象:rep函数
一般来说rep函数用两个参数就够了,前面一个参数表示重复的对象,后面一个参数表示要重复的次数;
例:
> rep(1:3)
[1] 1 2 3
把向量(1,3)重复4遍
> rep(c(1,3),4)
[1] 1 3 1 3 1 3 1 3
如果加each来修饰:先将1重复4遍,再将3重复4遍
> rep(c(1,3),each=4)
[1] 1 1 1 1 3 3 3 3
rep函数的重叠使用:
rep(2,3):把2重复三次,后面在把每个对象都做两次重复,一共是1,2,3这三个对象这样来做
> rep(1:3,rep(2,3))
[1] 1 1 2 2 3 3
> rep(2,3)
[1] 2 2 2
向量的运算会对这个向量的每一个元素都会做同样的运算,那出现在同一个表达式的运算,最好是同样的长度,如果长度不一样,表达式中短的向量会被循环使用。所以表达式的值会和最长的向量等长的向量 ;R语言有许多内置的函数,可以对向量进行运算,可以有效的提高工作效率,
例如:mean()函数求向量的均值;
> t <- c(2,543,3,5,1)
> mean(t)
[1] 110.8
sum()求和;
> sum(t)
[1] 554
median()求中位数;
> median(t)
[1] 3
求方差(距离均值的平均距离)var();
> var(t)
[1] 58376.2
R语言默认小数点后面保留六位小数;标准差sd();
> sd(t)
[1] 241.6117
排序sort() --- 从小到大排序;
> t <- c(2,543,3,5,1)
> sort(t)
[1] 1 2 3 5 543
rev() (reverse)将结果反向输出;
> t <- c(2,543,3,5,1)
> rev(t)
[1] 1 5 3 543 2
求向量的秩:rank();
例:
主要是按照它的顺序给出它的位置
> t <- c(2,543,3,5,1)
> rank(t)
[1] 2 5 3 4 1
prod这个方法来自production表示求积;可以把向量里面所有的数值都把他乘在一起
> t <- c(2,543,3,5,1)
> prod(t)
[1] 16290
除此之外还可以用append函数为原有的向量添加元素
> append(t,10:15)
[1] 2 543 3 5 1 10 11 12 13 14 15