【学习】《R实战》读书笔记(第一章)

第一章 R简介

本章概要

1安装R

2理解R语言

3运行R程序

本章所介绍的内容概括如下。

一个典型的数据分析步骤如图1所示。

图1:典型数据分析步骤

简而言之,现今的数据分析要求我们从多种数据源中获取数据、数据合并、标注、清洗和分析,并且把分析的结果进行展示,形成报告或者系统,辅助决策。R能够满足现今数据分析的要求。

为什么用R?

R是一个适合统计分析和绘图的环境与语言。它是开源、免费的,获得世界范围社区支持。统计分析和绘图工具已经很多了,例如:SPSS,SAS,Excel,Stata和Minitab等,为什么还要用R呢?R的诸多特性,可以回答这个问题。

1)R是免费的,大多数统计工具都是商业化的,即要花钱。

2)R是一个功能强大全面的统计分析平台,一个典型的数据分析过程都可以用R来完成。

3)R具有强大的绘图能力。

4)R是一个能够进行交互式数据分析和探索的平台。

5)R是一个以容易且直观的方式编写统计方法的无与伦比的平台。

6)R实现了很多高级统计方法。

7)R可以在多个系统上运行。

8)R对于不想编程的人,提供GUI,实现R所能做的事情。

获得和安装R

从网址http://cran.r-project.org获得R安装程序。

R工作

R是一个有大小写之分的解释型语言。你可以在命令提示符(>)每次输入一条命令或者在一个源文件中写好所有命令集。

R的赋值符号是”<-“。

> x <- rnorm(5) # 向量x包含5个服从标准正态分布的随机数

R在Windows系统的GUI如图2所示。

图2:Windows系统下GUI

R实例一,数据集为10个婴儿年龄(单位:月)和体重(单位:千克)。

程序清单如下:

> Age <- c(1, 3, 5, 2, 11, 9, 3, 9, 12, 3)

> Weight <- c(4.4, 5.3, 7.2, 5.2, 8.5, 7.3, 6.0, 10.4, 10.2, 6.1)

> mean(Weight)

[1] 7.06

> sd(Weight)

[1] 2.077498

> cor(Age, Weight)

[1] 0.9075655

> plot(Age, Weight)

关于Age与Weight的散点图如图3所示。

图3:10个婴儿的Age-Weight散点图

退出界面,执行如下函数。

> q()

R帮助系统很强大,通过帮助可以获得R中已安装包的函数的细节、参考和实例。R 中获得帮助的方法。

方法一:help.start()

方法二:help(“foo”)或者?foo

方法三:help.search(“foo”)或者??foo

方法四:example(“foo”)

方法五:RSiteSearch(“foo”)

方法六:apropos(“foo”,mode=”function”)

方法七:data()

方法八:vignette()

方法九:vignette(“foo”)

R 工作空间是R当前工作环境和用户定义的所有对象。(向量、列表、数组、矩阵、数据框 和函数等)

管理R空间的一些函数。

函数一:getwd()

函数二:setwd(“mydirectory”)

函数三:list()

函数四:rm(objectname)

函数五:help(options)

函数六:options()

函数七:history(#)

函数八:savehistory(“myfile”)

函数九:loadhistory(“myfile”)

函数十:save.image(“myfile”)

函数十一:load(“myfile”)

函数十二:save(objectlist, file=”myfile”)

R实例二,数据集20个服从标准均匀分布的随机数

> setwd(“E://myproject”)

>options()

>options(digits=3)

>x <- runif(20)

>summary(x)

>hist(x)

>savehistory(x)

>save.image()

>q()

R脚本输入方法,即source(“myscript.R”)

文本输出方法,即sink(“myfilename”)

图形输出方法,即pdf(“xxx.pdf”)或者png(“xxx.png”)或者jpeg(“xxx.jpg”)或者bmp(“xxx.bmp”)等。

R包

R功能之所以强大,原因之一就是具有非常多的功能扩展包。R包下载地址如下:

http://cran.r-project.org/web/packages/

为什么要用R包。R包是R函数、数据,可编译代码的聚合。

.libPaths() #显示包安装路径

library() # 查看已安装的包

search() #告知那些包已装载和可以使用

R软件安装完毕后,自带包(标准包)有base,datasets,utils,grDevices,graphics,stats和methods。

安装包方法,即 install.packages(“packagename”)

更新包方法,即update.packages()

了解已安装包的详细信息方法,即installed.packages()

加载包(前提是该包已经安装)的方法,即library(“packagename”)

对新安装包的学习和认知方法,即help(package=”packagename”)

批处理

适合重复性工作

形式:R CMD BATCH options infile outfile

结果重用

f分析的结果可以保存,并作为下一次的输入。

R实例三,数据集R自带的mtcars。

程序清单:

>lmfit <- lm(mpg ~ wt, data=mtcars)

>summary(lmfit)

>plot(lmfit)

>predict(lmfit, mynewdata)

对待大数据集

R所处理的一切都视为对象代之,并且是把对象加载到内存中进行操作和处理。因而,R能处理多大的数据集取决于作业环境的内存容量。

使用R进行数据分析,需要考虑两点,一是数据的大小;二是统计分析的方法。R能够处理GB级到TB级数据。但特殊过程特殊处理。

R实例

秉承”学以致用、活学活用“的原则,以一个综合实例融合上述内容。

R综合实例,程序清单如下。

>help.start()

>library()

>install.package(“vcd”)

>help(package=”vcd”)

>library(vcd)

> help(Arthritis)

> Arthritis

> example(Arthritis)

>q()

运行效果如图4所示。

总结

1 )R的优势。

2 )因R很适合理解数据,吸引很多用户群(学生、研究人员、统计学者、数据分析师等)。

3)RGUI、R安装、R包、R程序、R帮助、R结果保存、R批处理等内容。

“读书会是一种在于拓展视野、宏观思维、知识交流、提升生活的活动。PPV课R语言读书会以“学习、分享、进步”为宗旨,通过成员协作完成R语言专业书籍的精读和分享,达到学习和研究R语言的目的。读书会由辅导老师或者读书会成员推荐书籍,经过讨论确定要读的书,每个月读一本书且要精读,大家一起分享。”

本栏目文章由PPV课R语言读书会提供,转载请注明来自PPV课R语言读书会。 版权所有,违者必究!

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2014-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

18届学长Java面经分享:应届生找工作,基础为主,项目在精

先说一下我的个人情况,18届应届毕业生,去年9月份开始在上海一家软件公司实习,直到今年的4月底离开公司,6月中旬开始找工作,现已经拿到较为满意的offer(坐标...

1302
来自专栏java达人

博文精选|MobX — 10分钟极速入门 MobX 与 React

http://eyehere.net/2016/mobx-getting-started/(点击阅读原文前往)

883
来自专栏数据小魔方

R语言数据清洗实战——复杂数据结构与list解析

数据清洗从来都不是一件简单的事情! 使用httr包结合浏览器抓包工具进行网页数据抓取虽然非常方便,但是获取的数据后期处理工作量却非常庞大的。 因为大部分json...

4165
来自专栏AI科技大本营的专栏

浮点峰值那些事儿

本文作者高洋,目前在商汤科技高性能计算组担任总监,对于并行计算颇有心得。本篇为高洋写给高性能并行计算的初学者,核心内容是教初学者用科学手段测量硬件的理论指标。有...

2985
来自专栏跨界架构师

[译文]Domain Driven Design Reference(三)—— 模型驱动设计的构建模块

  这些模式根据领域驱动设计,广泛地推行了面向对象设计的最佳实践。他们指导决策来提炼模型,并使模型和实现保持一致,每一个都增强了其他的有效性。仔细制定模型元素的...

972
来自专栏CDA数据分析师

如何在R中操作非结构化数据?

本文由CDA作者库成员HarryZhu原创,并授权发布。 CDA作者库凝聚原创力量,只做更有价值的分享。 ? 介绍 现代化数据科学中的 DataFrame 概念...

2609
来自专栏技术翻译

Python逻辑编程实例

逻辑编程是一种编程范例,它将计算视为对事实和规则构成的知识数据库的自动推理。它是一种编程方式,基于形式逻辑。这种语言的程序是一组逻辑形式的句子,表达关于问题域的...

3523
来自专栏大数据学习笔记

Java程序设计(Java9版):第0章 绪论(Introduction)

第0章 绪论(Introduction) 千里之行始于足下。 —-《道德经》 Man is still the most extraordinary c...

2295
来自专栏H2Cloud

领域驱动设计-软件中的对象

软件中的对象 About DOMAIN-DRIVEN DESIGN 领域驱动设计是一种思维方式,目的在于处理具有复杂问题的软件项目。在传统的瀑布软件开发模型中,...

3555
来自专栏小白课代表

[Android/IOS] | 把微博秒拍Twitter的视频装进口袋里的...

1152

扫码关注云+社区

领取腾讯云代金券