资源预览内容
第1页 / 共69页
第2页 / 共69页
第3页 / 共69页
第4页 / 共69页
第5页 / 共69页
第6页 / 共69页
第7页 / 共69页
第8页 / 共69页
第9页 / 共69页
第10页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验目的,实验内容,学习S语言中向量、多维数组和矩阵的表示方法,1、数据表示 2、应用实例 3、实验作业,S向量、多维数组和矩阵,S语言是基于对象(Object)的语言 基本的数据类型有: 向量、矩阵、列表等 复杂的数据对象有: 数据框对象,时间序列对象,模型对象,图形对象,等等。,S语言表达式可以使用常量和变量。 变量名: 由字母、数字、句点组成,第一个字符必须是字母,长度没有限制,但区分大小写。 特别要注意句点可以作为名字的合法部分。,常量,常量为:数值型、逻辑型和字符型三种,其中 数值型数据又可以分为整型、单精度、双精度等 例如,123,123.45,1.2345e30 是数值型常量; “Weight”,“李明”是字符型; 逻辑真值写为T或TRUE(注意区分大小写,写t或true都没意义),逻辑假值写为F或FALSE。 复数常量就用3.5-2.1i这样的写法表示。,S中的数据可以取缺失值,用符号NA代表缺失值。 函数is.na(x)返回x是否缺失值(返回值T或F)。,向量(Vector)与赋值,向量是有相同基本类型的元素序列,即一维数组 定义向量的最常用办法是使用函数c(), 它把若干个数值或字符串组合为一个向量, 比如: x = c(1:3, 10:13) x 1 1 2 3 10 11 12 13 S中用符号“ x1 = c(1, 2) 和 assign(“x1”, c(1, 2)相同 函数length(x)可以计算向量x的长度。,向量运算,可以对向量进行加()减()乘(*)除(/)、乘方()运算,其含意是对向量的每一个元素进行运算。 例如: x y =x*2+1 y 1 3.0 9.0 13.5,%/%表示整数除法(比如5 %/% 3为1), %表示求余数(如5 % 3为2)。,可以用向量作为函数自变量, sqrt、log、exp、sin、cos、tan等函数都可以用向量作自变量,结果是对向量的每一个元素取相应的函数值 函数min和max分别取向量自变量的最小值和最大值, 函数sum计算向量自变量的元素和, 函数mean计算均值, 函数var计算样本方差(分母为n-1), 函数sd计算标准差(在Splus中用sqrt(var()计算) 如果求var(x)而x是矩阵,则结果为样本协方差阵。 (行向量为观测值),随机向量,记 X = ( X1 , X2 , , Xp ) 为 p 维随机向量,对 X = ( X1 , X2 , , Xp ) 进行一次观测, 得观测值: ( x11 , x12 , , x1p ) = X(1) , 它是一个样品。,对 X = ( X1 , X2 , , Xp )进行观测n次, 得n个样品: X( i ) = ( xi1 , x i 2 , , x i p ) ,i =1,n 它是一个样本. 用矩阵记为如下,称为样本数据阵.,多元总体样本的数字特征,其中, (1) 样本均值向量 X :,多元总体样本的数字特征,其中,(2) 样本离差阵 (又称交叉乘积阵)A :,(3) 样本协方差阵 S :,多元总体样本的数字特征,其中,称为变量X i 的样本方差; 样本方差的平方根 称为变量X i 的样本标准差.,si i,(4) 样本相关阵R :,多元总体样本的数字特征,其中,sort(x)返回x的元素从小到大排序的结果向量 order(x)返回使得x从小到大排列的元素下标向量(xorder(x)等效于sort(x))。 x=c(2,4,8,6,10) order(x) 1 1 2 4 3 5 xorder(x) 1 2 4 6 8 10,任何数与缺失值的运算结果仍为缺失值。 例如, 2*c(1, NA, 2) 1 2 NA 4 sum(c(1, NA, 2) 1 NA,产生有规律的数列,在S中很容易产生一个等差数列。 例如,1:n产生从1到n的整数列, -2:3产生从-2到3 的整数列, 5:2产生反向的数列: 注意 1:n-1不是代表1到n-1而是向量1:n减去1, 1:n-1 1 0 1 2 3 4 1:(n-1) 1 1 2 3 4,seq函数是更一般的等差数列函数。 如只指定一个自变量n0,则seq(n)相当于1:n 。指定两个自变量时,第一量是开始值,第二量是结束值,如seq(-2,3)是从-2到3,默认公差为1 。,S函数调用的一个很好的特点是它可以使用不同个数的自变量,函数可以对不同类型的自变量给出不同结果,自变量可以用“自变量名自变量值”的形式指定。例如,seq(-2,3)可以写成seq(from=-2, to=3)。可以用一个by参数指定等差数列的增加值,例如:, seq(0, 2, 0.7) 1 0.0 0.7 1.4 也可以写成seq(from=0, to=2, by=0.7)。,有参数名的参数的次序任意,如: seq(0, by=0.7, to=2) 1 0.0 0.7 1.4 可以用length参数指定数列长度, 如seq(from=10, length=5)产生10到14。 seq函数还可以用一种seq(along=向量名)的格式,这时只能用这一个参数,产生该向量的下标序列,如:, x 1 1.00 4.00 6.25 seq(along=x) 1 1 2 3,另一个类似的函数是rep,它可以重复第一个自变量若干次,例如: rep(x,3) 1 1.00 4.00 6.25 1.00 4.00 6.25 1.00 4.00 6.25 第一个参数名为x,第二个参数名为times(重复次数)。 此外numeric(n)可以产生一个长度为n的零向量,逻辑向量,向量可以取逻辑值,如: l = c(T, T, F) l输出1 TRUE TRUE FALSE 当然,逻辑向量往往是一个比较的结果,如: x 输出 1 1.00 4.00 6.25 l = x 3 l 输出 1 FALSE TRUE TRUE,一个向量与常量比较大小,结果还是一个向量,元素为每一对比较的结果逻辑值。 两个向量也可以比较,如: log(10*x) 1 2.302585 3.688879 4.135167 log(10*x) x 输出1 TRUE FALSE FALSE 比较运算符包括,=,=,!=。,逻辑向量,两个逻辑向量可以进行与( c(young,old)(age65)+1; 1 old young young old,字符型向量,向量元素可以取字符串值。例如: c1 =c(x, sin(x) c1 输出 1 x sin(x) ns = c(Weight, Height, 年龄) ns 输出1 Weight Height 年龄 paste函数用来把它的自变量连成一个字符串,中间用空格分开,例如: paste(My, Job) 1 My Job paste(Hi,早) 输出1 Hi 早,连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。自变量可以是数值向量,连接时自动转换成适当的字符串表示,例如: paste(c(X, Y), =, 1:4) 1 X = 1 Y = 2 X = 3 Y = 4 分隔用的字符可以用sep参数指定,例如: paste(result., 1:5, sep= ) 1 result.1 result.2 result.3 result.4 result.5 如果给paste()函数指定了collapse参数, 则把字符串向量的各个元素连接成一个字符串, 中间用collapse指定的值分隔。比如 paste(c(a, b), collapse=.) 得到a.b。,复数向量,S支持复数运算。 复数常量只要用3.5+2.1i这样的格式即可。 复向量的每一个元素都是复数。 可以用complex()函数生成复向量(见帮助)。Re()计算实部,Im()计算虚部, Mod() 计算复数模,Arg()计算复数幅角。,complex package:base R Documentation Complex Vectors Description: Basic functions which support complex arithmetic in R. Usage: complex(length.out = 0, real = numeric(), imaginary = numeric(), modulus = 1, argument = 0) plex(x, .) plex(x) Re(x) Im(x) Mod(x) Arg(x) Conj(x) Arguments: length.out: numeric. Desired length of the output vector, inputs being recycled as needed. real: numeric vector. imaginary: numeric vector . modulus: numeric vector.,argument: numeric vector. x: an object, probably of mode complex. .: further arguments passed to or from other methods. Details: Complex vectors can be created with complex. The vector can be specified either by giving its length, its real and imaginary parts, or modulus and argument. (Giving just the length generates a vector of complex zeroes.) plex attempts to coerce its argument to be of complex type: like as.vector it strips attributes including names. Note that plex and is.numeric are never both TRUE. The functions Re, Im, Mod, Arg and Conj have their usual interpretation as returning the real part, imaginary part,modulus, argument and complex conjugate for complex values. Modulus and argument are also called the _polar coordinates_. If z = x + i y with real x and y, Mod(z) = sqrtx2 + y2, and for phi= Arg(z), x = cos(phi) and y = sin(phi). They are all generic functions: methods can be defined for them individually or via the Complex group generic. In addition, the elementary trigonometric, logarithmic and exponential functions are available for complex values. plex is generic: you can write methods t
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号