R-3_向量、多维数组和矩阵

时间:2022-11-23 13:16:32 作者:壹号 字数:10566字

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 。

…… 此处隐藏1821字 ……

可以用complex()函数生成复向量(见帮助) Re()计算实部 Im()计算虚部 Mod() 计算复数模 Arg()计算复数幅角

> ?complex

R-3_向量、多维数组和矩阵

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.

R-3_向量、多维数组和矩阵

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,