R语言笔记(一)

1 R语言介绍


一个典型的数据分析过程如下,是一个需要不断迭代和修正的过程。

数据分析流程

1.1 为何要使用R?

R有着非常多值得推荐的特性:

  1. 多数商业统计软件价格不菲,投入成千上万美元都是可能的。而R是免费的!如果你是一位教师或一名学生,好处显而易见;
  2. R是一个全面的统计研究平台,提供了各式各样的数据分析技术;
  3. R拥有顶尖水准的制图功能;
  4. R是一个可进行交互式数据分析和探索的强大平台,其核心设计理念就是支持上图中所概述的分析方法;
  5. R可以轻松地从各种类型的数据源导入数据,包括文本文件、数据库管理系统、统计软件,乃至专门的数据仓库;
  6. R可运行于多种平台之上,包括Windows、UNIX和Mac OS X。

总的来说,R能够让你以一种简单而直接的方式创建优雅、信息丰富、高度定制化的图形。而使用其他统计语言创建类似的图形不仅费时费力,而且可能根本无法做到。

1.2 R的获取和安装

R可以在CRAN上下载并安装,提供了Windows、UNIX和Mac OX等各大平台的安装版本。之后还将介绍如何安装增强R功能的可选模块——包(package)。

1.3 R的使用

R是一种区分大小写的解释型语言,你可以在命令提示符(>)后每次输入并执行一条命令,或者一次性运行在脚本中写好的多条命令。

R的多数功能由程序内置函数和用户自编函数提供(如果你用过python、matlab之类,这里应该很好理解)。一些函数是默认可用的,其他高级函数需要按需加载相应的模块。

R使用<-赋值,而不是传统的=,例如:

创建了一个名为x的向量对象,包含5个来自标准正态分布的随机偏差。

在R中,注释由符号#开头。

一个简单的例子

可以使用函数c()以向量的形式赋值,并使用内置的统计函数计算统计值,然后用图形展示,最后使用q()退出R。来一个计算婴儿月龄和体重数据的例子吧!

再附上几个R绘图demo命令:demo(graphics)、demo(Hershey)、demo(persp)、demo(image)。查看完整的演示列表,直接运行demo()。

获取帮助

当你需要帮助时,不妨使用以下命令:

  1. help.start():打开帮助文档首页;
  2. help(“foo”)或?foo:查看函数foo的帮助(引号可以省略);
  3. help.search(“foo”)或??foo:以foo为关键词搜索本地帮助文档;
  4. example(“foo”):函数foo的使用示例(引号可以省略);
  5. RSiteSearch(“foo”):以foo为关键词搜索在线文档和邮件列表存档;
  6. apropos(“foo”, mode=”function”):列出名称中含有foo的所有可用函数;
  7. data():列出当前已加载包中所含的所有可用示例数据集;
  8. vignette():列出当前已安装包中所有可用的vignette文档;
  9. vignette(“foo”):为主题foo显示指定的vignette文档。

工作空间

工作空间就是当前R的工作环境,它储存着所有用户定义的对象(向量、矩阵、函数、数据框、列表),你可以保存和载入工作空间。交互过程的历史命令也保存于工作空间中,可以使用上下方向键查看,用return来重复执行上条命令。

一些和工作空间相关的函数:

  1. getwd():显示当前的工作目录;
  2. setwd(“mydirectory”):修改当前的工作目录为mydirectory;
  3. ls():列出当前工作空间中的对象;
  4. rm(objectlist):移除(删除)一个或多个对象;
  5. help(options):显示可用选项的说明;
  6. options():显示或设置当前选项;
  7. history(#):显示最近使用过的#个命令(默认值为25);
  8. savehistory(“myfile”):保存命令历史到文件myfile中(默认值为.Rhistory);
  9. loadhistory(“myfile”):载入一个命令历史文件(默认值为.Rhistory);
  10. save.image(“myfile”):保存工作空间到文件myfile中(默认值为.RData);
  11. save(objectlist, file=”myfile”):保存指定对象到一个文件中;
  12. load(“myfile”):读取一个工作空间到当前会话中(默认值为.RData);
  13. q():退出R,将会询问你是否保存工作空间。

输入和输出

如果需要运行一个R脚本中的多行命令该如何操作?R使用source(“filename”)载入脚本,使用sink(“filename”)将结果输出到文档中。其中后者可以加参数,append=TRUE表明将输出文本追加到文件后而不是覆盖,split=TRUE可将输出同时发送到屏幕和输出文本中,不加参数调用sink()将仅向屏幕返回输出结果。

图形输出的话,可使用以下函数输出成相应文件:pdf(“filename.pdf”)、win.metafile(“filename.wmf”)、png(“filename.png”)、jpeg(“filename.jpg”)、bmp(“filename.bmp”)、postscript(“filename.ps”),最后使用dev.off()将输出返回至终端。

总而言之,屏幕是默认的文本和图像输出端,但是也可以指定输出至文件。

1.4 包

包是R的可选扩展功能模块,官方提供的2500多个包横跨各种领域、功能惊人,包括分析地理数据、处理蛋白质质谱,甚至是心理测验分析的功能。

.libPath()函数可以查看R中已安装的包集合(称为库)的路径,函数library()可以显示库中有哪些包,函数search()可以得到哪些包已经被加载并可以使用。

包的安装

install.packages(),不带参数则返回一个CRAN镜像站点列表,带参数即包名则直接安装。

一个包只需要安装一个,包若有更新,则使用update.packages(“packagename”)进行更新。

使用installed.packages()查看已经安装的包及描述。

包的载入

使用library(packagename)以载入包,一次会话中只需要加载一次。当然也可以自定义启动环境,以自定义默认加载的包。

包的使用

加载了包之后,使用help(package=”packagename”)来查看该包的帮助信息,包括函数名称和数据集列表。

1.5 批处理

如果希望不是交互地运行R,而是周期地重复运行R文件,该如何做呢?

Linux或Mac OS下:

其中infile为包含要执行R代码的文件名,扩展名为.R,outfile为接收输出文件名,扩展名为.Rout,options列出了控制执行细节的选项。

1.6 实战

完成以下操作吧!

  1. 打开帮助文档首页,并查阅其中的“Introduction to R”;
  2. 安装vcd包(一个用于可视化类别数据的包);
  3. 列出此包中可用的函数和数据集;
  4. 载入这个包并阅读数据集Arthritis的描述;
  5. 显示数据集Arthritis的内容(直接输入一个对象的名称将列出它的内容);
  6. 运行数据集Arthritis自带的示例;
  7. 退出。

所需代码:

2 创建数据集

数据分析 BY 伦大锤   阅读量 1,338

按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步。在R中,这个任务包括以下两步:

  1. 选择一种数据结构来存储数据;
  2. 将数据输入或导入到这个数据结构中。

2.1 数据结构

R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表,其中一部分数据类型可以用下图来说明:

R中常见数据类型

向量

向量是用于存储数值型、字符型或逻辑型数据的一维数组,单个向量中的数据必须拥有相同的类型或模式。

用方括号访问向量中的元素,如访问向量a中的第二个和第四个元素:

支持冒号语法,以下将返回a的第二至第六个元素:

矩阵

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

其中vector向量包含了矩阵元素,nrow和ncol为行数和列数,byrow默认为FALSE表示按列填充,否则TRUE为按行填充,dimnames为行列名。使用时,只有前三个参数是必须的。

x[i,]表示矩阵x中的第i行,x[,j]表示矩阵x中的第j列,x[i,j]表示矩阵x中的第i行第j个元素,或者使用数值型向量代替i、j以选择多行或多列。

数组

数组和矩阵类似,但是维度可以大于2,通过array函数创建。

其中vector包含数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames可选、表示各维度名称标签的列表。

数据框

可以理解成数据库中的表,特点是不同的列可以包含不同模式(数值型、字符型等)数据,但是每列的数据模式必须相同,通过data.frame创建。

访问数据可以通过以下三种方式:

如果希望生成diabetes和status的列联表,使用以下代码即可:

可以使用attach()和detach()将数据框添加至R搜索路径或移除:

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值