Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言系列第二期:①R变量、脚本、作图等模块介绍

R语言系列第二期:①R变量、脚本、作图等模块介绍

作者头像
微点
修改于 2019-05-13 02:16:27
修改于 2019-05-13 02:16:27
1.3K0
举报
文章被收录于专栏:sci666sci666

在上一篇文章里,给大家介绍了R语言的下载,界面操作,6个处理对象等等。

在这些内容的基础上,我们在这个部分为大家介绍一些实用知识,包括描述工作区结构、图形设备以及它们的参数等问题,还有初级编程和数据输入输出。

1 | 会话管理常用操作

①首先,我们需要提出一个概念:“变量”,其实变量在各种语言或程序都会出现,是计算机语言中能储存计算结果或能表示值的抽象概念。我们先前完成的赋值操作都是把变量作为对象,是数据结果的容器,同时也是我们给结果的代号。R中变量的命名是很开放的,只需要遵守以下的原则:

1. 由字母、数字、圆点(.)、下划线组成

2. 不能有除圆点(.)、下划线 以外的符号,如(%)等

3. 不能以数字开头

4. 以圆点(.)开头后不能直接接数字

5. 与sas不同,不能以下划线开头

②在R中创建的所有变量会存储在一个公共的工作区。要了解哪些变量定义在工作区中,可以使用函数ls()函数来展示它们:

> ls()

 [1] “acc.count” “age.acc”   “brk” “findruns” “findruns1” “findud”  

 [7] “i” “juul” “mid.age” “n” “preda” “pvec”    

[13] “s” “side” “thue” “thuesen” “udcorr” “x”       

[19] “xbar” “y”    

#Tips:这里是LS()的小写,不是i,容易出错,另外ls后的括号不能省略,省略了就变成了变量ls了,而不是函数。这里展示的是工作区内所存储的变量,但不包括系统变量——以点开头的变量,若想要展示它们,可以用> ls(all=T)来展示所有变量,但不建议这样做。另外因为操作的缘故,结果展示可能会不同。

如果想要删除某些变量,可以通过rm()来实现:

> rm(acc.count,age.acc,brk,findruns,findruns1,findud)

> ls()

 [1] “i” “juul” “mid.age” “n” “preda” “pvec” “s”     

 [8] “side” “thue” “thuesen” “udcorr”  “x” “xbar” “y”  

#Tips:可以使用> rm(list=ls())来清空整个工作区。

如果想要保存工作区到文件,可以使用> save.image()或者File菜单下的保存工作空间,或者在关闭R时出现的提醒里保存,都会保存成一个后缀名为.RData的文件。

#Tips:上面的方式只会保存工作区的R变量,但是不会保存产生的所有输出,如果想要保存输出结果,点击Files菜单下的“Save to File(保存到文件)”,就会保存所有的结果。

#Tips:当前工作目录可以通过getwd()获取,通过setwd()转换到自己想要设定的地址。比如:> setwd(“C:/Users/Administrator/Documents”)

③如果要处理的问题比较复杂,不希望逐行与R进行交互,或者在输入多行数据的情况下容易出错,在使用上箭头调整的时候很麻烦,在这些情况下,可以使用R脚本来处理,即R代码行的集合。

文件→新建程序脚本

④获取帮助、包、内置数据

这三个东西都属于R软件内置的文件,而帮助和包的相关内容在引言的文章中有提到过。内置数据在上一部分我们已经提过。

在命令行中通过输入> help(split)或用前缀形式> ?split都可以获取split()函数的帮助。

包可以包含用R语言写的函数,汇编代码动态加载库以及数据集。包的功能会自动执行,所以用户不需要一直加载包。使用library命令将包装入R:

> library(survival)

加载的包不被视为工作区的一部分,如果终止了本次的R,重新打开R需要重新加载包。如果需要移除已经装载的包,需要使用:

> detach(“package:survival”)

attach detach

有的时候你要重复写一些很长的命令,在数据框中获取变量的符号就会很多比如说:> plot(women$height,women$weight)

#Tips:women是R自带的数据集,可以直接使用,不需要外部导入。

不过,R可以让你在数据框内搜寻目标变量,不使用$符号,比如:

> attach(women)

> plot(height,weight)

attach()命令相当于将women放置到系统的搜索路径中,可以使用> search()看到搜索路径:

> search()

 [1] “.GlobalEnv”  “women” “package:stats”   

 [4] “package:graphics”  “package:grDevices” “package:utils”   

 [7] “package:datasets”  “package:methods”   “Autoloads”       

[10] “package:base”    

也可以用detach()从搜索路径删除数据框,如果不给参数,默认第二个位置的数据框被删除。

> detach()

> search()

[1] “.GlobalEnv” “package:stats” “package:graphics”

[4] “package:grDevices” “package:utils” “package:datasets”

[7] “package:methods” “Autoloads” “package:base”  

subset和transform

对于选择数据子集以及变换变量创建新的数据框:

> women.sub<-subset(women,women$height<65)

> women.sub

  height weight

1     58    115

2     59    117

3     60    120

4     61    123

5     62    126

6     63    129

7     64    132

> women.transform=transform(women,

+ bmi=(weight*0.45359)/((height*0.0254)^2))

> head(women.transform)

  height  weight     bmi

1     58    115  24.03465

2     59    117  23.63077

3     60    120  23.43553

4     61    123  23.24029

5     62    126  23.04534

6     63    129  22.85097

#Tips:subset()函数是选取子集的函数,第一个参数是原始数据集,第二个参数是条件,类似于上一个部分所讲的条件选择。Transform()函数可以根据已有变量来计算新变量,或为原数据框添加新的列,改变原变量列的值,还可通过赋值NULL删除列变量。“=”不是赋值,而是表示名称,该名称被赋值给最后一步计算的向量。可以尝试> women$bmi看一下。

2| 作图系统环境

布局:R使用的图形模型中,通常含有的部分包括中央绘图区、坐标轴线、坐标轴数字、x-y轴标签、边界、标题、副标题、图例等等。

标准的x-y图的轴标签一般默认采用变量名,当然也可以在plot调用中覆盖标签,也可以增加进一步标题或者上方的主标题和底部的副标题。

> plot(height,weight)

> x<-runif(50,0,2)

> y<-runif(50,0,2)

> plot(x,y,main=”Main Title”,sub=”Subtitle”,xlab=”x-label”,ylab=”y-label”)

还可以在绘图区的内部,放置点和线,要么在plot()函数里设定,要么在后面用points和lines添加。同时也可以添加字符或数字文本。

> text(0.5,0.5,”text at (0.5,0.5)”)

> abline(h=0.5,v=0.5)

#Tips:这里调用abline()表示调取横坐标为0.5的垂直线和纵坐标为0.5的水平线,我们也可以用abline()来绘直线y=ax+b。比如> abline(1,0.5)表示斜率为1,截距为0.5的直线。

边界信息由mtext()函数来填补,如:

> for(side in 1:4) mtext(-1:4,side=side,at=0.8,line=-1:4)

> mtext(paste(“side”,1:4),side=1:4,line=-1,font=2)

#Tips:for循环和mtext()里的side参数来调整填写的边,-1 :4是填写的内容,line=参数是调整文字离线的距离。at=用来调整具体坐标。font=2表示的是粗体字符。

逐步构造图形(引言里涉及这部分内容,我们来温习一下)

图形的每一部分都可以单独绘制,单独绘制图形通常允许对元素更加精确地控制,所以要达到给定效果的标准,可以先绘制不包括元素的图形(框架),随后在逐步添加元素。例如下面的空白图形构建:

> plot(x,y,type=”n”,xlab=””,ylab=””,axes=F)

#Tips:此处type=“n”,表示不绘制点,axes=F删掉坐标轴和周围的框,标题标签设置成空字符串。尽管什么也看不见,但是不代表程序什么也没做,命令已经指定了绘图区域和坐标系统,只是没有展示出来而已。

下面我们开始为我们的空白画板添加元素:

> points(x,y)

> axis(1)

> axis(2,at=seq(0.2,2.0,0.2))

> box()

> title(main=”Main title”,sub=”subtitle”,xlab=”x-label”,ylab=”y-label”)

par的使用

函数par()可以对图的细节进行非常精细的控制,但是对于初学者来说比较难掌握,需要反复练习强化。

Par()设置允许控制线宽和类型、字符大小和字体、颜色、坐标轴的类型、图形图表区域的大小、图形的裁剪等。

这部分的内容等后续到作具体图形的地方,我们再来回头学习。

组合图形

当希望把几个元素放到一张图上的时候,就有一些特殊的要求。如考虑为直方图叠加一个正态密度函数。下面的命令可以做出来我们想要的结果:

> x<-rnorm(100)

> hist(d,freq=F)

> curve(dnorm(x),add=T)

#Tips:hist()里的freq=F保证了直方图是根据概率密度而不是实际值画出来的分布曲线,rnorm()是产生随机数,dnorm()是密度函数【关于概率与分布的部分详见番外二】。 add=T表示允许叠加到已有图形上。

但是也会出现右图的结果,曲线没有完整地展现出来,密度函数的顶部被切去一部分。因为我们是在直方图的范围里添加的曲线,直方图的y轴上限值小于密度函数的最高点。但是,如果我们换一下顺序,先画出密度函数再做直方图也不行,因为有可能直方图顶端被切除。我们可以先去获得两个图形的最高点,然后把作图区域的扩大到容纳最高点为止:

> h<-hist(x,plot=F)

> ylim<-range(0,h$density,dnorm(0))

> hist(x,freq=F,ylim=ylim)

> curve(dnorm(x),add=T)

#Tips:调用hist时,如果plot=F,将不会画出任何图形,但是会返回一个以比例尺度表示的直方图高度的结构。此外,结合它以及dnorm(x)的最大值为dnorm(0)的事实,我们就可以计算出来包含直方图和密度图的作图的y轴范围。range调用中的0保证了条形的底部也在范围内。y值的范围通过ylim参数传递到hist()函数中。

这一部分暂时先告一段落,在这部分里,大家了解了R语言环境中的变量、脚本的使用和一些便利性简单操作,以及图形基础,下个部分我们会接触到R语言的流程控制、编码和数据读入、转换和保存等操作,敬请期待。

参考资料:

1. 《Introductory Statistics with R Second Edition》  Peter Dalgaard著

2. 《R语言初学者指南》 人民邮电出版社  Brian Dennis著

3. Vicky的小笔记本《blooming for you》by  Vicky

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
「R」自己动手进行R基础绘图
基本绘图和R本身一样古老,但对大多数用户来说,它仍然是神秘的。他们可能使用plot(),甚至知道其参数的完整列表,但大多数人从未完全理解它。本文试图通过为外行提供友好的介绍来揭开基础图形的神秘面纱。
王诗翔呀
2022/12/30
1K0
「R」自己动手进行R基础绘图
浅谈一款进阶软件R的实际运用
发现这款软件在小样本,常见的临床问题中可以快速的解决我们大部分问题,其简单操作界面以及菜单式操作方式成为很多人选择它的理由。但是,当我们遇到某些大数据,或者复杂统计运算时,如果还拿SPSS作为自己的救命稻草,那可能就是一出损招了,甚至会一度click到想要剁手。
微点
2019/05/11
1.1K0
R语言入门系列之二
在进行正式的数据分析之前,通常要对数据进行处理。而读取数据仅仅是最简单的,之后还要进行数据的筛选、排序、转换等。数据框是最方便的数据存储、管理对象。R有很多内置的示例数据集包括向量、矩阵数据框等,可以使用data()进行查看,接下来我们以R内置数据mtcars(32辆汽车在11个指标上的数据)为例进行分析,如下所示:
SYSU星空
2022/05/05
4.1K0
R语言入门系列之二
R语言︱画图
point加点;axis右边坐标轴,mtext右边坐标轴的名称,text给出本文。
悟乙己
2019/05/26
1.3K0
R语言_图形初阶
#输出图形到pdf pdf("mygraph.pdf") attach(mtcars) plot(wt,mpg) abline(lm(mpg~wt)) title("regression of mpg on weight") detach(mtcars) dev.off() #图形参数par设置 opar = par(no.readonly=TRUE) par(lty=2,pch=17) #指定线型2和符号形状17 par(lwd=2,cex=1.5) #指定线宽2,符号大小1.5 par(pin
用户1147754
2019/05/27
6410
R语言高级绘图命令(标题-颜色等)
plot(x)          以x的元素值为纵坐标、以序号为横坐标绘图 plot(x,y)        x(在x-轴上)与y(在y-轴上)的二元作图 sunflowerplot(x,y)同上,但是以相似坐标的点作为花朵,其花瓣数目为点的个数 pie(x)饼图 boxplot(x)盒形图(“box-and-whiskers”) stripchart(x)把x的值画在一条线段上,样本量较小时可作为盒形图的替代 coplot(x~y|z)关于z的每个数值(或数值区间)绘制x与y的二元图 interact
学到老
2018/03/16
4.2K0
基础R绘图
    R作为一款越来越受追捧的数据分析工具,以上简单作图函数只是它全部功能的冰山一角。其实,它的作图功能比一般人能想象得到的还要强大得多。最近也接触ggplot2一阵子,有机会也希望能跟更多的朋友一起交流分享。。。
云海谷天
2022/08/09
3150
R语言系列第二期:②R编程、函数、数据输入等功能
在上一部分里,我们为大家介绍了R的会话管理和作图系统。链接:R语言系列第二期:①R变量、脚本、作图等模块介绍
微点
2019/05/11
1.6K0
R语言中绘图的注释函数小结
我们知道一个漂亮而清晰的图像的形成指定缺不了图像中细节的注释。那么今天我们就来总结下在R语言中那些注释函数。
一粒沙
2019/07/31
6.4K0
基于直方图和散点图延伸出来的其他绘图细节
图形是一个有效传递分析结果的呈现方式。R是一个非常优秀的图形构建平台,它可以在生成基本图形后,调整包括标题、坐标轴、标签、颜色、线条、符号和文本标注等在内的所有图形特征。本章将带大家领略一下R在图形构建中的强大之处,也为后续更为高阶图形构建铺垫基础。
1480
2019/07/01
6470
基于直方图和散点图延伸出来的其他绘图细节
「R」传统图形绘制
上述处理的都是向量数据,而matplot()、matpoints() 和 matlines()都是处理矩阵形式数据的。
王诗翔呀
2020/07/02
2K0
R语言系列第二期(番外篇):R先生教你统计概率与分布
还记得我们在系列2开始的时候为大家介绍的几个特别的函数吗,rnorm(),dnorm()…?如果你忘记了,详情点击:R语言系列第二期:②R编程、函数、数据输入等功能
微点
2019/09/25
2.3K0
R语言之基础绘图
R 的基础绘图系统由 Ross Ihaka 编写,功能非常强大,主要由 graphics 包和 grDevices 包组成,它们在启动 R 时会自动加载。基础绘图系统中有两类函数,一类是高水平作图函数,另一类是低水平作图函数。
timerring
2023/10/13
5440
R语言之基础绘图
53-R可视化-二-基础包绘图的入门功夫
虽然现在ggplot 的优雅的图像语法已经非常多了。可还是偶有base 绘图的使用场景:
北野茶缸子
2021/12/17
1.4K0
53-R可视化-二-基础包绘图的入门功夫
R语言绘图001-基础参数
ann:如果ann=FALSE,那么高水平绘图函数会调用函数plot.default使对坐标轴名称、整体图像名称不做任何注解。默认值为TRUE。
生信补给站
2020/08/06
2.3K0
R语言基础绘图教程——第2章:散点图
plot函数中,x和y分别表示所绘图形的横坐标和纵坐标;函数中的...为附加的参数。
DoubleHelix
2019/08/09
4.8K0
R语言基础绘图教程——第2章:散点图
R语言进阶之坐标轴和文本
使用函数title()可以在图中添加标题,这里包括主标题、副标题、x轴标题和y轴标题,具体如下:
生信与临床
2020/08/05
4.3K0
R语言函数的含义与用法,实现过程解读
R的源起 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。 R is free R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的
学到老
2018/03/19
5K0
R语言基本画图「建议收藏」
windows上,打开一个一个图形界面,勾选“历史”——“记录”。然后点击菜单中的“上(下)一个”即可。
全栈程序员站长
2022/07/29
1.9K0
R语言基本画图「建议收藏」
R语言入门之直方图与密度曲线
直方图 在绘制直方图时,大家可以使用hist(x)这个函数,其中x就是需要进行可视化的数据,当然这个函数还有一个参数就是freq,其默认设置是freq=NULL。当freq=FALSE时,其纵
生信与临床
2020/08/06
3.3K0
R语言入门之直方图与密度曲线
相关推荐
「R」自己动手进行R基础绘图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档