zoukankan      html  css  js  c++  java
  • R语言入门 :基本数据结构

    1、向量

    向量是R语言中最基本的数据类型,在R语言中没有单独的变量。

    (1)  创建向量

    R语言中可以用 = 或者 <- 来赋值。

    向量名 <- 向量

    或  向量名 = 向量

    向量的创建方式有c()函数,seq()函数等。

    注:R中的向量默认为列向量,如果要得到行向量需要对其进行转置。

     

     

    (2)  引用

    待引用向量为:test = c(6,7,8,9,10)。

    a、用下标引用

    向量名[下标值]

    或  向量名[下标值1:下标值2] (下标值1至下标值2的所有数值)

    注:R语言下标值从1开始。

    另外,可以在下标值前加 – 表示排除这个下标。

    向量名[-下标值]

    b、用逻辑引用

    向量名[逻辑关系]

    其中逻辑关系表示的是一个布尔值构成的向量,用逻辑引用时只会选择答案为TRUE的值。

    (3)  合并向量

    c()可以合并向量。

    (4)  循环补齐

            当两个向量进行操作时,若其中一个向量比另一个向量长度短,那么该向量会复制自己直到与另一个向量一样长。(注:长向量长度是短向量长度的整数倍)

    其中test1自动变成了(1,2,3,1,2,3)再与test2相加。(test1,test2变量值并未发生改变)

    2、矩阵

    矩阵从本质上讲,是多维的向量。

    (1)  创建矩阵

    最简单的直接创建矩阵的方法是用matrix()函数。

            其中,data参数输入的为矩阵的元素,不能为空;nrow参数输入的是矩阵的行数,默认为1;ncol参数输入的是矩阵的列数,默认为1;byrow参数控制矩阵元素的排列方式,TRUE表示按行排列,FALSE表示按列排列,默认为FALSE;dimnames参数输入矩阵的行名和列名,可以不输入,系统默认为NULL。

    还可用其他格式的数据转变为矩阵,需要用到函数as.matrix()。

    (2)  引用矩阵

    与向量相似,可用下标来引用矩阵。

    矩阵名[行下标,列下标]

    (3)  线性代数

    a、对应元素相乘

    b、矩阵相乘

    c、矩阵的转置t()

    d、矩阵的逆solve()

    3、数组

    数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:

            其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。

    4、数据框

            数据框是R语言里中的一种数据结构,类似于矩阵,不过与矩阵不同的是其内部可以有多种数据类型,每一列是一个变量,每行是一个观测记录。

    (1)  创建数据框

    使用data.frame()函数就可以初始化一个数据框。

            矩阵可以转化为数据框,如果原来有列名,那么列名将被改作为数据框的变量名,如果没有列名,那系统会自动为矩阵的各列起一个变量名,如:V1,V2,V3...

    列表数据可以转成数据框。

            另外也可以使用read.table() read.csv()读取一个文本文件,返回的也是一个Data Frame对象。读取数据库也是返回Data Frame对象。

    (2)  引用数据框

    待引用数据框为

    a、用下标引用

    b、用列表名引用

    (3)  常用操作

    a、添加变量(列)

    b、修改变量(列)

    c、删除观测值或变量(行或列)

    数据框名[-下标值,]

    数据框名[,-下标值]

     

     

    (4)  常用函数

    a、names()函数

    可获取列名。

    b、rownames()、colnames()函数

    可修改行名及列名。

    c、attach()函数

    可以把数据框中的变量“连接”到内存中,这样便于数据框数据的调用。

    5、列表

            列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表。

    (1)  创建列表

    使用list()函数就可以初始化一个列表。

    (2)  引用列表

    待引用列表即为上图所创建的列表。

    列表名[[下标]

    注:列表不同于向量,我们每次只能引用一个元素,如mylist[[1:2]]的用法是不允许的。“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表)。

            在定义列表时如果指定了元素的名字(如mylist中的name,age,score),则引用列表元素还可以用它的名字作为下标,格式为“列表名[["元素名"]]”。

    列表名$元素名

    (3)  常用操作

    a、添加元素

            如果被赋值的元素原来不存在,则列表延伸以包含该新元素。例如,mylist现在共有三个元素,我们定义一个新的命名元素,则列表长度变为4,再定义第六号元素则列表长度变为6:

            第五号元素因为没有定义所有其值是“NULL”,这是空对象的记号。如果rec是一个向量 ,则其空元素为“NA”。

    b、修改元素

    c、删除元素

    d、合并列表

    可以用list()函数进行列表合并。

    list(列表1,列表2,···,列表n)

  • 相关阅读:
    【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
    【模拟题(63550802...)】解题报告【贪心】【拓扑排序】【找规律】【树相关】
    【模拟题(电子科大MaxKU)】解题报告【树形问题】【矩阵乘法】【快速幂】【数论】
    IMemoryBufferReference and IMemoryBufferByteAccess
    SoftwareBitmap and BitmapEncoder in Windows.Graphics.Imaging Namespace
    Windows UPnP APIs
    编译Android技术总结
    Windows函数转发器
    Two Ways in Delphi to Get IP Address on Android
    Delphi Call getifaddrs and freeifaddrs on Android
  • 原文地址:https://www.cnblogs.com/huskysir/p/10529980.html
Copyright © 2011-2022 走看看