第一部分 :第一章:R语言介绍

参考书籍:《R语言实战》 Robert I.Kabacoff 高涛,肖楠,陈钢

image.png

主要内容:R的安装、熟悉R语言、运行R程序

1.1 为何要使用R?

  1. free

  2. 完整性

  3. 顶尖制图功能

  4. 可进行交互式数据分析和探索的强大平台

  5. 多个数据源数据转化成可用形式便捷

  6. 易于扩展的快速编程语言

  7. 更新速度迅捷

  8. 便捷的GUI(Graphical User Interface)工具

  9. 运行多平台上。

1.2 R的获取和安装

R可以在CRAN(Comprehensive R Archive Network)上免费下载

1.3 R的使用

R是一种区分大小写的解释型语言。

你可以在命令提示符(>)后每次输入并执行一条命令,或者一次性执行写在脚本文件中的一组命令。

R语句由函数赋值构成。R使用 <-,而不是传统的 = 作为赋值符号。

注释符号 # 开头

1.3.1 新手上路

让我们通过一个简单的虚构示例来直观地感受一下这个界面。假设我们正在研究生理发育问题,并收集了10名婴儿在出生后一年内的月龄和体重数据(见表1-1)。我们感兴趣的是体重的分布及体重和月龄的关系。

[图片上传失败...(image-dacc95-1582635117243)]

分析:使用函数c()向量的形式输入 月龄和体重 数据,次函数可将其参数组合成一个向量或者列表。然后利用其它函数获得 体重的均值和标准差,以及月龄和体重的相关度,最后用图形展示月龄和体重的关系,这样就可以用可视化的方式检查其中可能存在的趋势。

函数q()结束会话允许你退出R

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
cor(age,weight)
[1] 0.9075655
cor(age,weight)
[1] 0.9075655
plot (age,weight)
q()</pre>

1.3.2 获得帮助

R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力你的编程工作。R的内置帮助系统提供了当前已安装包中所有函数的细节、参考文献以及使用示例。

函数 功能
<font color=Green>help.start()</font> 打开帮助文档首页
help("foo")或('foo') 查看函数foo的帮助(引号可以省略)
<font color=Red>help.search ("foo") 或??foo</font> 以foo为关键词搜索本地帮助文档
<font color=Red>example("foo")</font> 函数foo的使用实例(引号可以省略)
RSiteaSearch("foo") 以foo为关键词搜索在线文档和邮件列表存档
apropos("foo",mode="function") 列出名称中含有foo的所有可用函数
data() 列出当前已加载包中所含所有可用的示例数据集
vignette() 列出当前已安装包中所有可用的vignette文档
vignette("foo") 为主题foo显示指定的vignette文档

函数help.start()会打开一个浏览器窗口,我们可在其中查看入门和高级的帮助手册、常见问题集,以及参考材料。

函数RSiteSearch()可在在线帮助手册R-Help邮件列表的讨论存档中搜索指定主题,并在浏览器中返回结果。

由函数vignette()函数返回的vignette文档一般是PDF格式的实用介绍性文章。并非所有的包都提供了vignette文档。

1.3.3 工作空间

工作空间(workspace)就是当前R的工作环境,它储存着所有用户定义的对象(向量、矩阵、函数、数据框、列表)

工作目录(working directory)是R用来读取文件和保存结果的默认目录。我们可以使用函数getwd()查看当前的工作目录,或使用函数setwd()****设定当前的工作目录

表1-2

函数 功能
getwd() 显示当前的工作目录
setwd("mydirectory") 修改当前的工作目录为mydirectory
ls() 列出当前工作空间的对象
rm(obejectlist) 移除(删除)一个或多个对象
help(options) 显示可用选项的说明
history(#) 显示最近使用过的#个命令(默认值为25)
savehistory("myfile") 保存命令历史到文件myfile中(默认值为.Rhistory)
loadhistory("myfile") 载入一个命令历史文件(默认值为.Rhistory)
save.image("myfile") 保存工作空间到文件myfile中(默认值为.RDate)
save(objectlist,file="myfile") 保存指定对象到一个文件中
load("myfile") 读取一个工作空间到当前会话中(默认值为.RData)
q() 推出R。将会询问你是否保存工作空间。
1.3.4 输入和输出
  1. 输入

    函数source("filename")可在当前会话中执行一个脚本。

  2. 文本输出

    函数sink("filename")将输出重定向到文件filename中。

  3. 图形输出

    要重定向图形输出,使用表1-3中列出的函数即可。最后使用dev.off()将输出返回到终端。

    函数 输出
    pdf("filename.pdf") PDF文件
    win.metafile("filename.wmf") Windows 图元文件
    png(“filename.png”) PBG文件
    jpeg("filename.gpg") JPEG文件
    bmp("filename.bmp") BMP文件
    postscript("filename.ps") PostScript文件1.4 包

1.4 包

目前有2500多个 称为包(package) 可下载。

这些包提供了横跨各种领域、数量惊人的新功能,包括分析地理数据、处理蛋白质质谱,甚至是心理测验分析的功能。

1.4.1 什么是包

包是R函数、数据、预编译代码以一种定义完善的格式组成的集合

计算机上存储包的目录称为库(library)

函数.libPaths()能够显示库所在的位置, 函数library()则可以显示库中有哪些包

R自带了一系列默认包(包括base、datasets、utils、grDevices、graphics、stats以methods),它们提供了种类繁多的默认函数和数据集。其他包可通过下载来进行安装。安装好以后,它们必须被载入到会话中才能使用。命令search()可以告诉你哪些包已加载并可使用。

1.4.2 包的安装

第一次安装第一个包:

install.package(): 不加参数执行install.packages()将显示一个CRAN镜像站点的列表选择其中一个镜像站点之后,将看到所有可用包的列表,选择其中的一个包即可进行下载和安装。

如果知道自己想安装的包的名称,可以直接将包名作为参数提供给这个函数。

一个包仅需安装一次。但和其他软件类似,包经常被其作者更新。使用命令update.packages()可以更新已经安装的包。

要查看已安装包的描述,可以使用installed.packages()命令,这将列出安装的包,以及它们的版本号、依赖关系等信息。

1.4.3 包的载入

library()命令载入这个包

1.4.4 包的使用方法

载入一个包之后,就可以使用一系列新的函数和数据集了。

包中往往提供了演示性的小型数据集和示例代码,能够让我们尝试这些新功能。帮助系统包含了每个函数的一个描述(同时带有示例),每个数据集的信息也被包括其中。

命令help(package="package_name")可以输出某个包的简短描述以及包中的函数名称和数据集名称的列表。使用函数help()**可以查看其中任意函数或数据集的更多细节。

R语言编程中常见的错误:

  1. 使用了错误的大小写。help()、Help()和HELP()是三个不同的函数(只有第一个是正确的)。

  2. 忘记使用必要的引号。install.packages("gclus")能够正常执行,然而Install.packages(gclus)将会报错。

  3. 函数调用时忘记使用括号。例如,要使用help()而非help。即使函数无需参数,仍需加上()。

  4. 在Windows上,路径名中使用了\。R将反斜杠视为一个转义字符。setwd("c:\ mydata")会报错。正确的写法是setwd("c:/mydata")或setwd("c:\mydata")。

  5. 使用了一个尚未载入包中的函数。函数order.clusters()包含在包gclus中。如果还没有载入这个包就使用它,将会报错。

1.5批处理

没看懂,略吧

1.6将输出用为输入--结果的重用

R的一个非常实用的特点是,分析的输出结果可轻松保存,并作为进一步分析的输入使用。

1.7处理大数据集

举例来说,在我服役了5年的2G内存Windows PC上,我可以轻松地处理含有1000万个元素的数据集(100个变量×100 000个观测)。在一台4G内存的iMac上,我通常可以不费力地处理含有上亿元素的数据。

但是也要考虑到两个问题:数据集的大小要应用的统计方法。R可以处理GB级到TB级的数据分析问题,但需要专门的手段。大数据集的管理和分析问题留待附录G中讨论。

1.8 示例实践

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容