首页 > 代码库 > R语言入门心得(3) -- 向量相关

R语言入门心得(3) -- 向量相关

向量定义

  R在实际应用中比较常用的一个对象就是向量(Vector)。向量的创建格式为

  向量名 = c(x1,x2,x3,…..)

  向量名 <- c(x1,x2,x3,…..)

 或  c(x1,x2,x3,…..) -> 向量名

 或  Assign("向量名", c(x1,x2,x3,…..))c()为向量赋值函数,c()可以有任意多个参数,而起返回值则是一个把这些参数首尾相连形成的向量。你可以在命令行中输入?c或者help(c)来查看函数的详细信息。例如我们要创建一个名称为x的含有五个数值的向量可以用如下方式:

x=c(7.1, 6.3, 5.8, 2.4, 12.7),在RStudio中显示如下

  > x=c(7.1, 6.3, 5.8, 2.4, 12.7)

回车就可以了。如果想查看x向量的具体值,则只需要在命令行中输入x即可。如下图所示

  > x

  [1]  7.1  6.3  5.8  2.4 12.7

前面的[1]表示所得向量的第一个元素。

向量运算

  以刚才的向量x为例,如果我们输入 2*x命令,则向量中的每个元素都乘以2得到一个新的向量,我们也可以将该新的向量赋值给一个新的对象。同时,向量x中的每个元素的值是不会变化的。以上操作的结果如下所示

  > x

  [1]  7.1  6.3  5.8  2.4 12.7

  > 2 * x

  [1] 14.2 12.6 11.6  4.8 25.4

  > y = 2 * x

  > y

  [1] 14.2 12.6 11.6  4.8 25.4

  > x

  [1]  7.1  6.3  5.8  2.4 12.7

以上赋值都是较简单的赋值,查看以下示例

> y = c(x, 0, x),则向量y的元素将是什么情况呢?

在控制台中输入y查看结果
  > y

  [1]  7.1  6.3  5.8  2.4 12.7  0.0  7.1  6.3  5.8  2.4 12.7

说明R创建了一个含有11个元素的的向量y,其中包括两份x拷贝和位于中间的一个0。

  上例中我们的x向量的每个元素都是数值,其实向量也可以接受字符串类型的元素。例如我、们键入如下命令就能生成一个3个字符串元素的向量

  > str = c("h", "Time", "Vector")

  > str

  [1] "h"      "Time"   "Vector"

下面就是它的输入结果。如果我们想要对str向量进行2 * str操作则R将会报错,提示我们str是非数值元素组成的向量。

  向量除了支持基本+, - ,*, /和幂^运算外,还包括一些常用的数学函数,如log, exp, sin, cos, tan, sqrt等等;max和min可以求出向量的最大值和最小值,如果向量元素是字符串类型,则max和min函数得到的是向量元素按照字符串顺序排序的最后面的值和最前面的值;mean()和var()函数分别取得向量的平均值和方差,如上例中的向量y利用以上两个函数求平均值和方差得到的结果如下

  > mean(y)

  [1] 6.236364

  > var(y)

  [1] 15.37655

很多的函数用法可以通过查看帮助文档获得更多的信息。

从向量中选取子集

  如果我们要访问向量的某些元素,我们可以可以在 向量名字后面加上[]以选取向量的子集。

  > v = c(1.2,2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9)

  > v

  [1] 1.2 2.3 3.4 4.5 5.6 6.7 7.8 8.9

  > v[2]

  [1] 2.3

  > v[2:6]

  [1] 2.3 3.4 4.5 5.6 6.7

  > v[c(1, 2 ,1)]

  [1] 1.2 2.3 1.2

  以上操作依次是取得向量v的第二个元素,取得向量v的第二到第六个元素的值,取得向量v第一个、第二个、重复第一个元素的值。