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)

  • 相关阅读:
    从错误状态恢复虚拟机
    OpenStack手动从数据库中删除实例
    对于flat_interface与public_interface的理解
    2. 拓扑图
    Cinder相关命令收集
    Nova相关命令收集
    14. Launch an instance
    9. Add the Block Storage service
    8. Add the dashboard
    7. Add a networking service
  • 原文地址:https://www.cnblogs.com/huskysir/p/10529980.html
Copyright © 2011-2022 走看看