摘要
第3章
Chapter 3在R中加载及处理数据
学习成果
通过本章的学习,您将能够:
将不同类型的数据存储为向量(vector)、矩阵(matrixe)和列表(list);
从csv文件、电子表格(spreadsheet)、Web、JASON文档和XML中加载数据;
处理缺失及无效的数据;
在数据上运行R函数(sum()、min()、max()、rep()、grep()、substr()、strsplit()等);
用R访问数据库,如MySQL、PostgreSQL、SQLlite和JasperDB;
创建可视化,以加深对数据的理解。
3.1概述
如今,企业应用程序产生了大量的数据。对这些数据进行分析可以得出有用的见解,从而帮助决策者做出更好和更快的决策。本章将介绍R支持的不同的数据类型,如数字、文本、逻辑值、日期等。同时介绍各种R对象,如向量、矩阵、列表、数据集等,以及如何使用R函数sum()、min()、max()、rep()和字符串函数substr()、grep()、strclip()等操作数据。探讨将csv(comma separated values)文件、电子表格、XML文档、JASON(JavaScript Object Notation)文档、Web数据等导入R,以及R与MySQL、PostGreSQL、SQLite等数据库的连接方式。数据分析中存在很多挑战,例如数据并不总是同质的,即数据的来源不同,并且格式也不同。在保证数据质量的同时会带来若干挑战,利益相关者也会从各种角度观察数据,并且会产生不同的需求。
3.2分析数据处理的挑战
分析数据处理是商业智能的一部分,包括关系数据库、数据仓库、数据挖掘和报告挖掘,这是一种计算机处理技术,可以处理不同类型的业务,如销售、预算、财务报告、管理报告等,以上这些处理技术都需要大数据技术的支持。
商业分析结合了大数据技术,在商业数据分析过程中出现了不同的挑战。然而,这些挑战大多与数据有关,它们在项目的早期阶段就出现了。
3.2.1数据格式
数据是商业分析的主要元素。商业分析使用数据集(sets of data)存储大量的数据。对研究人员或开发者而言,选择数据格式是分析数据处理中的首要挑战。分析数据处理需要一个完整的数据集,在没有数据集的情况下,开发人员会在进一步的处理中遇到问题。
R是一种文档健全的编程语言,它将数据存储成对象的形式。R有一个非常简单的语法,有助于处理任何类型的数据。R具有许多软件包和功能,如可以处理数据格式类型不同的开放数据库的连接(ODBC),ODBC支持CSV、MS Excel、SQL等数据格式。
大数据分析——基于R语言第3章在R中加载及处理数据3.2.2数据质量
保证数据质量是分析数据处理的另一个挑战,它要求业务分析师提供完美的信息推断、异常值及没有任何缺失值的输出。输入或输出较差的数据一定会给出不符合质量要求的结果。
在R的帮助下,业务分析师可以保证数据质量。不同的R工具可以帮助业务分析师删除无效数据、替换缺失值和删除数据中的异常值。
3.2.3项目范围
基于分析数据处理的项目成本高,并且耗时长,因此在启动新项目前,业务分析师应该分析项目的范围,确定所需外部数据的数量、交付时间和与项目有关的其他参数。
3.2.4利益方期望的输出结果的管理
在分析数据处理中,分析人员设计的项目会产生不同类型的输出,如pvalue、自由度等。但是,用户或利益方更希望看到输出。利益方不希望在数据处理、设想、假设、pvalue、卡方值(chisquare value)或任何其他值中看到约束。因此,一个分析项目应努力满足利益方的所有期望。
业务分析师应该使用透明的方法和处理流程,也应该使用交叉验证的方法验证数据。如果业务分析师使用分析数据处理的标准步骤产生完美的输出,则不会遇到任何问题。数据输入、处理、描述性统计、数据可视化、报告生成和输出构成了分析数据处理的顺序,分析人员在对项目进行业务分析时应该遵循这个流程。
小练习
1. 什么是分析数据处理?
答: 分析数据处理是业务智能化的一部分,包括关系数据库、数据仓库、数据挖掘和报告挖掘。
2. 列出分析数据处理中的挑战。
答: 分析数据处理中的一些挑战包括数据格式、数据质量、项目范围、利益方期望的输出结果的管理。
3. 分析数据处理的一般步骤是什么?
答: 数据输入、处理、描述性统计、数据可视化、报告生成和输出是分析数据处理的一般步骤。
3.3表达式、变量和函数
首先熟悉一下R的接口,从练习表达式、变量和函数开始。
3.3.1表达式
观察几个算术运算,如表3.1给出的加法、减法、乘法、除法、求幂、取余(模运算)、整除和求平方根。表3.1算术运算运算操作符描述示例加法x + yy加上x> 4 + 8
[1] 12减法x - yx减去y > 10 - 3
[1] 7乘法x yx 乘以 y> 7 8
[1] 56除法x / yx 除以 y< 8/3
[1] 2.666667指数运算x ^ y
x yx 的y次幂> 2 ^ 5
[1] 32 > x +1
5 8 9但是,向量还是保持它本身的元素。> x
\[1\] 4 7 8如果向量需要更新为新值