zoukankan      html  css  js  c++  java
  • R语言学习——向量,矩阵

     

    在R中,基本的数据结构有:向量,矩阵,数组,数据框,列表,因子,函数等。 向量:一系列同类型的有序元素构成。

    向量是一维结构。 向量是R最简单的数据结构,在R中没有标量。

    标量被看成1个元素的向量。 向量元素必须是同类型的。

    由于向量是最简单的数据结构,因此本章中以向量为例子来解释各个概念。

    矩阵:二维的同类型元素的集合。

    矩阵由函数matrix创建。 矩阵需要输入行数,列数。 矩阵是二维的,引用元素可通过双下标做索引。

    矩阵在物理实现时,是向量附加行列数属性来实现的,因此也可以通过向量的方式引用其元素。

    1、结构类型是指在R语言中,自带的对象的数据结构的类型。主要有 向量、矩阵、数组、数据框、列表等。

    2、元素类型是指在一个对象中,其元素所属类型。主要类型有: 数值型:分为整数型和双精度型(默认)。 字符型:夹在双引号或者单引号之间的字符或字符串。 复数型:形如a+bi形式的复数。 逻辑型:只能取TRUE(T)/FALSE(F)。 函数型:函数对象。 RAW:以二进制形式保存的数据。 缺省值:若某值不可得到(not available)或缺少值(missing value),相关位置可被赋NA值;任何NA的运算结果都为NA。

    A<-c(2,4,6)

    B<-c(“Lee”,”Jack”)

    C<-c(TRUE,FALSE)

    A是向量,A有三个元素,A的元素是数值型。 B是向量,B有两个元素,B的元素是字符型。 C是向量,C有两个元素,C的元素是逻辑型。

    R中皆对象。 R中所有的对象都有元素类型和长度属性,可通过函数typeof()和length()获取; 数据结构可通过class()获取。 R对象的长度可以随时发生改变,常见包括如下情况:

    R语言不能通过对某元素赋NULL值的方式,删除一个元素。

    1、除了typeof和length之外,其他class的对象可能还会有其他的属性,可以通过函数attributes()和attr()进行操作,例如: 函数attributes(object)将给出当前对象所具有的所有非基本属性(长度和模式属于基本属性)的一个列表。 函数attr(object,name)可以被用来选取一个指定的属性。

    R的数组中,元素的排列顺序是第一下标变化最快,最后下标变化最慢。这在FORTRAN中叫做“ 按列次序”。 属性以列表形式保存,其中所有元素都有名字。

    2、dim属性可通过dim()操作:二维或以上的都有dim属性。

     

    1、用下标来访问对象中的元素:下标个数需与对象维数对应。

    R的所有对象都可用一个下标来索引,这样就把对象看成广义的“向量”——有顺序的一排元素,这个对象是表明在这个序列中元素的序号。

    比如上述x虽然是2维的,但是x[2]也可以,表明第二个元素。 下标可以是负值,这表明就不选这个位置的元素。

     

    > x = array(6:1,2:3)
    > x
         [,1] [,2] [,3]
    [1,]    6    4    2
    [2,]    5    3    1
    > x[2]         #按照存储的顺序访问单个元素
    [1] 5
    > x[1,2]       #通过多个下标访问单个元素
    [1] 4
    > x[1,]        #返回一行
    [1] 6 4 2
    > x[,1]        #返回一列
    [1] 6 5 

    2、生成筛选索引:可以用等维的逻辑向量来选取元素。

    如果是矩阵,则需要等维度的逻辑矩阵来选取元素。提取出TRUE位置的元素。结果返回的是一个向量。 若筛选矩阵中有NA值,则此位置处的提取值为NA.

    3、若对象有names属性,还可通过names所含的字符串来索引。

    若对象是list 或者 data frame类型的,可以用$连接names属性值,来引用对应分量。

    注意:向量、矩阵和数组不可通过$来引用。

     

    1、向量 向量是R中最简单的数据结构,其是一系列有序同类型元素的集合。 向量是一维的

    2、向量的创建 向量可以用c()函数创建,其元素用逗号分隔,放在c()的参数列表中。 用rep(x,y)函数创建。 用冒号运算符(:)创建向量。 用seq()函数创建向量 by参数需与from to参数匹配 by可以是小数 随机数向量的生成(后面)

    向量: 随机数的生成

    4、向量的运算 普通运算符+-*/都是元素与元素相+-*/。 循环补齐规则:在对两个向量使用运算符时,若要求这两个向量具有相同的长度,R会自动循环补齐,即重复较短的向量,直到它与另一个向量长度相匹配。 一些函数 all()/any(): 参数中是否“all为TRUE/any为TRUE”。 强筛选函数subset() : 剔除NA值。

    函数which():返回向量中元素为TRUE的序列号。

     

    1、矩阵:二维相同类型的元素的组合。 2、矩阵的创建 matrix()函数

    标准创建matrix的方法。

    可以省略不必要的参数。

    可以创建NA矩阵。

    3、元素的引用: 下标索引 逻辑向量筛选 名字索引——字符串索引

    [注] 向量、矩阵和数组不可用$来引用对象。

    4、矩阵的运算 线性代数运算:%*% apply():对矩阵的行(或列)调用函数的函数 apply(m,dimcode,f,fargs) m是目标矩阵 dimcode是维度编号:沿着此维度提取出对象的分量,然后对各分量应用对应的函数。 1代表对每一行应用函数,2代表对每一列应用函数。 f是应用在行或列上的函数。 fargs是f的可选参数集

    apply每一次对行或列运用函数f()时得到的结果是列矩阵

    矩阵的融合: 按行融合两个矩阵:rbind() 按列融合两个矩阵:cbind()

     

  • 相关阅读:
    hdu 3666 差分约束系统
    hdu 1198农田灌溉
    常微分方程(阿諾爾德) Page 45 相空間,相流,運動,相曲線 註記
    高等微積分(高木貞治) 1.4節 例2
    常微分方程(阿諾爾德) Page 45 相空間,相流,運動,相曲線 註記
    解析函數論 Page 29 命題(2) 函數模的有界性
    高等微積分(高木貞治) 1.4節 例2
    解析函數論 Page 29 命題(1) 有界閉集上的一致連續性
    解析函數論 Page 29 命題(3) 模的下界的可達性
    解析函數論 Page 29 命題(2) 函數模的有界性
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/9726227.html
Copyright © 2011-2022 走看看