zoukankan      html  css  js  c++  java
  • R语言实战读书笔记2—创建数据集(上)

    第二章 创建数据集

    2.1 数据集的概念

    不同的行业对于数据集的行和列叫法不同。统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字段(field) ,数据挖掘/机器学习学科的研究者则把它们叫做示例(example)和属性(attribute) 。如表2.1所示

    在表2-1所示的数据集中, PatientID 是行/实例标识符, AdmDate 是日期型变量, Age 是连续型变量, Diabetes 是名义型变量, Status 是有序型变量。

    R可以处理的数据类型(模式)包括数值型、字符型、逻辑型( TRUE / FALSE ) 、复数型(虚数)和原生型(字节) 。在R中, PatientID 、 AdmDate 和 Age 将为数值型变量,而 Diabetes 和Status 则为字符型变量。

    2.2 数据结构

    2.2.1 标量

    标量是只含一个元素的向量,它们用于保存常量。

    2.2.2 向量

    向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数 c() 可用来创建向量。

    这里, a 是数值型向量, b 是字符型向量,而 c 是逻辑型向量。

    注意,单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型) 。同一向量中无法混杂不同模式的数据。

    2.2.3 矩阵

    矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型) 。可通过函数 matrix 创建矩阵。一般使用格式为:

    其中 vector 包含了矩阵的元素, nrow 和 ncol 用以指定行和列的维数, dimnames 包含了可选的、以字符型向量表示的行名和列名。选项 byrow 则表明矩阵应当按行填充( byrow=TRUE )还是按列填充( byrow=FALSE ) ,默认情况下按列填充。代码清单2-1中的代码演示了 matrix 函数的用法。

    2.2.4 数组

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

    其中 vector 包含了数组中的数据, dimensions 是一个数值型向量, 给出了各个维度下标的最大值,而 dimnames 是可选的、各维度名称标签的列表。代码清单2-3给出了一个创建三维(2×3×4)数值型数组的示例。

    2.2.5 数据框

    由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。数据框将是你在R中最常处理的数据结构。

    数据框可通过函数 data.frame() 创建:

    其中的列向量 col1, col2, col3,… 可为任何类型(如字符型、数值型或逻辑型) 。每一列的名称可由函数 names 指定。

    2.2.6 因子

    变量可归结为名义型有序型连续型变量。糖尿病类型 Diabetes ( Type1 、 Type2 )是名义型变量的一例。有序型变量表示一种顺序关系,而非数量关系。病情 Status ( poor , improved , excellent )是顺序型变量的一个上佳示例。连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。年龄 Age 就是一个连续型变量,它能够表示像14.5或22.8这样的值以及其间的其他任意值。

    类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor) 。

    函数 factor() 以一个整数向量的形式存储类别值,整数的取值范围是[1... k ](其中k 是名义型变量中唯一值的个数) ,同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。

    要表示有序型变量,需要为函数 factor() 指定参数 ordered=TRUE 。

    2.2.7 列表

    列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。

    其中的对象可以是目前为止讲到的任何结构。

    补充
    attach() 、 detach() 和 with()

    以R中的mtcars数据集为例子

    函数 attach() 可将数据框添加到R的搜索路径中。R在遇到一个变量名以后,将检查搜索路径中的数据框,以定位到这个变量。

    函数 detach() 将数据框从搜索路径中移除。 值得注意的是, detach() 并不会对数据框本身做任何处理。

    除此之外,另一种方式是使用函数 with()。在这种情况下,大括号 {} 之间的语句都针对数据框 mtcars 执行,这样就无须担心名称冲突了。如果仅有一条语句(例如 summary(mpg) ) ,那么大括号 {} 可以省略。函数 with() 的局限性在于,赋值仅在此函数的括号内生效。

    如果需要创建在 with() 结构以外存在的对象,使用特殊赋值符 <<- 替代标准赋值符( <- )即可,它可将对象保存到 with() 之外的全局环境中。

  • 相关阅读:
    Oracle spatial、openlayers、geoserver开发地理信息系统总结
    解决Geoserver请求跨域的几种思路,第二种思路用过
    OpenLayers中的球面墨卡托投影
    墨卡托投影、地理坐标系、地面分辨率、地图比例尺
    jQuery Easing 动画效果扩展
    jQuery实现鼠标移上弹出提示框,移出消失
    验证码生成组件--JCaptcha的使用
    jquery validate 验证
    Oracle查询错误分析:ORA-01791:不是SELECTed表达式
    启动tomcat报host-manager does not exist or is not a readable directory异常
  • 原文地址:https://www.cnblogs.com/niuxiaoha/p/4522771.html
Copyright © 2011-2022 走看看