找回密码
 注册
查看: 7885|回复: 0

R语言中怎么进行向量的运算

[复制链接]
发表于 2011-1-22 20:12:05 | 显示全部楼层 |阅读模式
在算术表达式中使用向量将会对该向量的每一个元素都进行同样算术运算。出现
在同一个表达式中的向量最好是长度一致。如果他们的长度不一样,该表达式的值将
是一个和其中最长向量等长的向量。表达式中短的向量会被循环使用(recycled)(可
能是部分的元素)以达到最长向量的长度。对于一个常数就是简单的重复。利用前面例
子中的变量,命令
> v <- 2*x + y + 1
将产生一个新的长度为11的向量v。它由2*x 重复2.2次,y 重复一次,1 重复11次得到
的向量相加而成。
基本的算术运算符就是常用的+,-,*,/ 和做幂运算用的^。另外还包括常
用的数学函数,如log,exp,sin,cos,tan,sqrt 等等。这些在教科书上都有所定
义。max 和min 分别给出一个向量的最大值和最小值。函数range 得到的是一个长
度为2的向量,即c(min(x), max(x))。length(x) 给出向量x 的元素个数, sum(x)
给出x 中元素的累加和, 而prod(x) 则得到它们的乘积。
两个统计函数就是计算均值的mean(x) (等价于sum(x)/length(x)) 和计算样
本方差的var(x)。var(x) 等价于
> sum((x-mean(x))^2)/(length(x)-1)
如果var() 的参数是一个n×p 的矩阵,则将该矩阵行与行之间看作是相互独立的p-变
量的样本向量,从而得到一个p×p 的样本协方差矩阵。
sort(x) 返回一个和x 长度一样但元素以升序排列的向量;此外,还有其他功能
更强大的排序函数(如可以随意排列的order() 和sort.list()等)。
注意max 和min 将会给出它们参数向量中的最大和最小值。在同时给予多个参数
向量的情况下,这两个函数会把参数向量合并成一个向量处理。并行(parallel)求解
最大和最小值的函数pmax 和pmin 将会返回一个和最长的参数长度一致的向量。该向
量每一个元素就是同一位置上的所有输入向量(即函数的参数)元素的最大(最小)
值。
大多数情况下,用户并不关心一个数值向量中的\数值" 到底是整数,实数,还是
复数。R 环境内部的计算是以双精度的实数或者双精度的复数(在输入数据是复数的
情况下)实现的。
如果要处理复数,应该给出明确的复数部分。因此
> sqrt(-17)
将会给出NaN 和一个警告,但是
> sqrt(-17+0i)
就会以复数形式计算。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-5-2 05:49 , Processed in 0.021032 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表