R-3_向量、多维数组和矩阵
时间:2025-04-04
时间:2025-04-04
R-3_向量、多维数组和矩阵
第三讲 R的数据结构(一) 向量、多维数组和矩阵 目的: 学习R中向量、多维数组和矩阵的表示方法 内容: 1. 数据表示 2. 实例 3. 作业
R-3_向量、多维数组和矩阵
R是基于对象的语言 基本的数据类型,有向量、矩阵、列表等 复杂的数据对象,有数据框对象,时间序列对象, 模型对象,图形对象,等等
R表达式可以使用常量和变量 变量名: 由字母、数字、句点组成,第一个字符必须是字母,长度没有限制,但区分大小写 特别要注意句点可以作为名字的合法部分
R-3_向量、多维数组和矩阵
常量 常量为逻辑型、数值型和字符型三种 实际上数值型数据又可以分为整型、单精度、 双精 度等 例如,123,123.45,1.2345e30 是数值型常量, “Weight”,“李明”是字符型 逻辑真值写为T或TRUE(注意区分大小写,写t或true 都没意义),逻辑假值写为F或FALSE 复数常量就用3.5-2.1i这样的写法表示
R的数据可以取缺失值,用符号NA代表缺失值 函数is.na(x)返回x是否缺失值(返回值T或F)
R-3_向量、多维数组和矩阵
向量(Vector)与赋值向量: 有相同基本类型的元素序列,一维数组 向量是R中最为基本的类型 一个向量中元素的类型必须相同,包括 数值型 整型 单精度实型 双精度实型
逻辑型 复值型 字符型
R-3_向量、多维数组和矩阵
向量赋值 定义向量的最常用办法是使用函数c() 它把若干个数值或字符串组合为一个向量, 比如: > x <- c(1:3, 10:13) >x [1] 1 2 3 10 11 12 13 R中用符号“<-”、 “=”来为变量赋值 另一种赋值的办法是用assign函数 比如> x1<- c(1, 2) 和 > assign(“x1”, c(1, 2))相同 函数length(x)可以计算向量x的长度
R-3_向量、多维数组和矩阵
向量运算 可以对向量进行加(+)减(-)乘(*)除(/)、乘方(^)运算,其含意是对向量的每一个元素进 行运算。 例如: > x <- c(1, 4, 6.25) > y <- x*2+1 >y [1] 3.0 9.0 13.5
另外,%/%表示整数除法(比如5 %/% 3为1),%%表示求余数(如5 %% 3为2)
R-3_向量、多维数组和矩阵
可以用向量作为函数自变量 sqrt、log、exp、sin、cos、tan等函数都可以用向 量作自变量,结果是对向量的每一个元素取相 应的函数值 函数min和max分别取向量自变量的最小值和最 大值 函数sum计算向量自变量的元素和 函数mean计算均值 函数var计算样本方差(分母为n-1) 函数sd计算标准差(在Splus中用sqrt(var())计算) 如果求var(x)而x是矩阵,则结果为样本协方差 阵。 (x中一个行向量为一次观测值)
R-3_向量、多维数组和矩阵
sort(x)返回x的元素从小到大排序的结果向量 order(x)返回使得x从小到大排列的元素下标向量, 即x从小到大排列后各元素在原来序列中的位置 (x[order(x)]等效于sort(x))。 >x<-c(2,4,8,6,10) >order(x) [1] 1 2 4 3 5 > x[order(x)] [1] 2 4 6 8 10 rank(x)
返回x的秩 [1] 1 2 4 3 5
任何数与缺失值的运算结果仍为缺失值 例如,> 2*c(1, NA, 2) [1] 2 NA 4 > sum(c(1, NA, 2)) [1] NA
R-3_向量、多维数组和矩阵
向量运算中的循环法则(recycling rule) 1 1 1 2 1 2 2 2 4 2 3 1 3 4 4 2 4 6 1 1 1 2 2 2 2 4 1 2 3 3 3 6 4 4 4 8 3 5 1 5 6 4 6 2 6 8 7 3 7 10
>1:2+1:4
>1:4+1:7
R-3_向量、多维数组和矩阵
产生有规律的数列 在R中很容易产生一个等差数列例如,1:n产生从1到n的整数列, -2:3产生从-2到3 的整数列, 5:2产生反向的数列: 注意:1:n-1不是代表1到n-1而是向量1:n减去1, > n<-5 > 1:n-1 [1] 0 1 2 3 4 > 1:(n-1) [1] 1 2 3 4
R-3_向量、多维数组和矩阵
seq函数是更一般的等差数列函数如只指定一个自变量n>0,则seq(n)相当于1:n 。指定 两个自变量时,第一量是开始值,第二量是结束值, 如seq(-2,3)是从-2到3 。
R函数调用的一个很好的特点是它可以使用不同个数的自变量,函数可以对不同类型的自变量给出不 同结果,自变量可以用“自变量名=自变量值”的 形式指定。例如,seq(-2,3)可以写成seq(from=-2, to=3)。可以用一个by参数指定等差数列的增加值, 例如:[1] 0.0 0.7 1.4 也可以写成seq(from=0, to=2, by=0.7)。
> seq(0, 2, 0.7)
R-3_向量、多维数组和矩阵
有参数名的参数的次序任意,如:> 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
R-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 (重 复次数)。x<-1:3 rep(x,1:3) [1] 1 2 2 3 3 3
R-3_向量、多维数组和矩阵
逻辑向量 向量可以取逻辑值,如: > l <- c(T, T, F) > l输出[1] TRUE TRUE FALSE 当然,逻辑向量是一个比较的结果,如: …… 此处隐藏:3202字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:公共艺术试题A