前言
大家好哇!我现在是一名大三的学生,这学期正在学习R语言这门课,我觉得像编程语言这样的课程,光靠老师讲授是远远不够的,更多的是需要我们自己去看书,去实践,多敲一敲书上的代码,有时只有自己真正去实践之后,才能找到问题所在,所以我准备每周对自己的学习情况进行总结,并以学习笔记的形式输出。希望可以和社区里正在学习R语言或者准备学习R语言的同学一起交流学习,如有错误,还请各位大佬批评指正!
ps:我学习R语言所使用的参考书为《R语言实战》(第2版) [美]卡巴科弗 [译]王小宁 北京人民邮电出版社
R语言简介:
提起R语言,可能有些同学会有些陌生。的确,R语言确实不像C语言、Java、python这些语言那么有影响力,但R语言既然存在,就一定有其存在的价值,而且它肯定有着某方面的优势,并且这个优势是别的语言无法取代的。那R语言的优势到底是什么呢?目前以我的了解,R语言最为强大的就是它的绘图功能,但因为我也是刚刚入门,所以接下来就让我们一起来揭秘R语言那神秘的面纱吧!
第一章:R语言介绍
一、 R的获取和安装
- R语言是一个开源软件,可在官网下载安装R: The R Project for Statistical Computing (r-project.org)
二、 R的使用
- R使用
<-,而不是传统的=作为赋值符号
x <- rnorm(5) #创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差
- 代码示例1-1
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) #取体重的均值
sd(weight) #取体重的标准差
cor(age,weight) #体重与年龄的相关度
plot(age,weight) #用图形展示月龄和体重的关系
q() #退出
- R绘制图形实例:
demo(graphics)
获取帮助
- 一般使用
?+函数名
例如:
?matrix
输入命令后会自动弹出该函数的帮助网页
工作空间
| 函数 | 功能 |
|---|---|
getwd() | 显示当前的工作目录 |
dir.create() | 创建新目录 |
setwd("mydirectory") | 修改当前的工作目录为mydirectory |
ls() | 列出当前工作空间中的对象 |
rm(objectlist) | 移除(删除)一个或多个对象 |
history(#) | 显示最近使用过的#个命令(默认值为 25) |
savehistory("myfile") | 保存命令历史到文件 myfile 中(默认值为.Rhistory) |
loadhistory("myfile") | 载入一个命令历史文件(默认值为.Rhistory) |
save.image("myfile") | 保存工作空间到文件 myfile 中(默认值为.RData) |
save(objectlist, file="myfile") | 保存指定对象到一个文件中 |
load("myfile") | 读取一个工作空间到当前会话中(默认值为.RData) |
q() | 退出 R,将会询问你是否保存工作空间 |
- 代码示例1-2
setwd("D:/1") #当前工作目录被设置为D:/1
options() #显示当前的选项设置情况
options(digits=3) #数字显示为具有小数点后三位有效数字的格式
x <- runif(20) #创建了一个包含20个0-1间均匀分布随机变量的向量
summary(x) #生成了此数据的摘要统计量
hist(x) #生成了此数据的直方图
q() #退出R
输入和输出
- 输入:一般使用
source函数- 例如:
source("myscript.R")将执行包含在文件myscript.R中的R语句集合 - 如果文件名中不包含路径,R将假设此脚本在当前工作目录中
- 例如:
- 输出:
- 文本输出:一般使用
sink函数- 例如:
sink("filename")将输出重定向到文件filename中 - 默认情况下,如果文件已经存在,则它的内容将被覆盖
- 使用参数
append=TRUE可以将文本追加到文件后,而不是覆盖它 - 参数
split=TRUE可将输出同时发送到屏幕和输出文件中 - 不加参数调用命令sink()将仅向屏幕返回输出结果
- 例如:
- 图形输出:可使用下表中的函数,最后使用
dev.off()将输出返回到终端
| 函数 | 输出 |
|---|---|
bmp("filename.bmp") | BMP 文件 |
jpeg("filename.jpg") | JPEG 文件 |
pdf("filename.pdf") | PDF 文件 |
png("filename.png") | PNG 文件 |
postscript("filename.ps") | PostScript 文件 |
svg("filename.svg") | SVG 文件 |
win.metafile("filename.wmf") | Windows 图元文件 |
包
- 函数
library()可以显示库中有哪些包
- 命令
search()可以告诉你哪些包已加载并可使用
-
使用命令
install.packages()可以安装想要的包,括号内可加入包的名称,例如:install.packages("gclus") -
使用命令
update.packages()可以更新已经安装的包 -
使用命令
installed. packages()可以列出已安装的包的信息 -
包的载入:
library(gclus) -
包的使用方法:
help(package="package_name")
- 代码示例1-3
help.start() #打开帮助文档首页
install.packages("vcd") #安装vcd包
help(package="vcd") #列出此包中可用的函数和数据集
library(vcd) #载入这个包
help(Arthritis) #查看数据集Arthritis的描述
Arthritis #显示数据集Arthritis的内容
example(Arthritis) #运行数据集Arthritis自带的示例
(q) #退出
三、 R语言编程中的常见错误
- 使用了错误的大小写,
help()、Help()和HELP()是三个不同的函数(只有第一个是正确的) - 忘记使用必要的引号,
install.packages("gclus")能够正常执行,然而install.packages(gclus)将会报错 - 在函数调用时忘记使用括号,例如,要使用
help()而非help,即使函数无需参数,仍需加上() - 在Windows上,路径名中使用了\,R将反斜杠视为一个转义字符,
setwd("c:\mydata")会报错,正确的写法是setwd("c:/mydata")或setwd("c:\\mydata") - 使用了一个尚未载入包中的函数,函数
order.clusters()包含在包gclus中。如果还没有载入这个包就使用它,将会报错
未完待续