求解答,R语言基础知识,docker attach detach和detach

史上最全的R语言学习资料,学会了走遍天下!
史上最全的R语言学习资料,学会了走遍天下!
R语言求行列式值的实例det()
R语言row()与col()函数实例
R语言取矩阵的上、下三角部分实例
R语言求矩阵X'X的逆solveCrossprod()实 ...
R语言矩阵的行和、列和、行平均与列平均计算 ...
R语言矩阵维数实例
R语言中矩阵Kronecker积计算实例
R语言矩阵广义逆(Moore-Penrose)实例
R语言矩阵QR分解实例
R语言矩阵奇异值分解实例svd(A)
R语言矩阵的Choleskey分解实例
R语言矩阵的特征值与特征向量求解实例
R语言矩阵求逆实例solve()
R语言矩阵对角元素相关运算实例
R语言矩阵相乘的例子 %*% crossprod(A,B)
R语言数与矩阵相乘的例子
R语言矩阵加减运算的例子
R语言矩阵转置的例子t()
R语言创建矩阵的例子matrix()
R语言创建向量的例子c()
关于求逆矩阵~
每次打开R,装载package都要用library,有没有 ...
R语言有个向量a&-letters想把它的每个字 ...
在R中写函数的两个例子
R语言的命名空间
R语言中的开源包和CRAN
R语言中标准包介绍
R语言图形如何输出为pdf,jpg,png等格式
R语言如何将多个图画在一张图里面
R语言画图如何修改边缘
R语言中如何修改轴和刻度
R语言中如何修改R 图形点,线,文本和多边形 ...
R语言画图时怎样临时性地改变:图形函数的参 ...
R语言画图时,如何永久改变参数
R语言中如何用鼠标辅助修改图形
R语言中的一些Hershey 矢量字体
R语言如何在一个图上加上数学符号和公式
R语言中如何详细的修改图形的任何信息
R语言中的一些高级图形命令的参数
R语言中的一些图形显示函数
R语言中如何显示多元数据
R语言中的plot() 画图函数
R语言中的类,泛型函数和面向对象
R语言中用户如何定制环境
R语言中的变量作用域
R语言中一个递归式的数值积分的例子
R语言中如何去除打印数组中的名字
R语言怎样在函数中赋值
R语言中的参数命名和默认值
R语言中怎么定义新的二元操作符
R语言中的for循环怎么用
R语言中的条件控制:if语句怎么用
R语言中怎么进行单样本和双样本检验
R语言如何检验一个数据集的分布,R语言如何 ...
R语言中的统计函数表
R语言中如何对数据进行编辑
如何从其他R 包里面导入数据
如何访问R语言中的内置数据
如何使用R语言中的scan() 函数读数据
如何使用R语言中的read.table()函数读取数据 ...
R语言中如何管理搜索路径
R语言中如何绑定任意的列表
R语言中如何使用数据框
R语言中的attach() 和detach()
如何创建R语言中的数据框
R语言中的数据框是什么
R语言中如何进行列表的连接
R语言中如何构建和修改列表
详细介绍R语言中的列表
R语言中如何做频数表
R语言中对数组实现连接操作的函数c()
R语言中用cbind() 和rbind() 构建分块矩阵
详解R语言中的最小二乘法拟合和QR 分解
R语言中如何进行奇异值分解和行列式
R语言总如何求矩阵的特征值和特征向量
R语言中的线性方程和求逆
R语言中矩阵的乘法运算
R语言中如何返回矩阵的行数和列数
R语言中数组的广义转置是什么
R语言中数组的外积是怎么计算的
R语言中向量和数组混合运算以需要注意的问题 ...
R语言中如何使用array() 函数
怎么样使用数组中的元素
R语言中数组详解
什么是R语言中的有序因子
什么是R语言中对象类
R语言如何读取和设置对象属性
如何改变R语言对象的长度
R语言的对象的两大属性,模式和长度
R语言中如何选择和修改一个数据集的子集
R语言中字符向量怎么处理
R语言处理数据的时候,有缺失值怎么办
R语言中的逻辑型向量怎么用
R语言中的正则向量
R语言中怎么进行向量的运算
分享这篇日志的人也喜欢
我就是那只夜猫
偷偷的播你信?
热门日志推荐
人人最热标签
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场推荐这篇日记的豆列
&&&&&&&&&&&&R语言最基础的入门知识 一些常用操作和例子
1 R的下载、安转
R有很多的版本,支持目前主流的操作系统MAC、Linux和WINDOWS系列。因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装。
你可以从世界各地很多网站上下载到R,官方的中国下载点是:
在我写这篇文章的时候,最新的版本是R-2.2.1版。
在网络上有一篇被翻译过来的R入门教材:R 導論(入門)
1,双击R-2.2.1-win32.exe文件,进入安装画面。
2,在Welcome to the R for Windows Setup Wizard的画面中,单击NEXT。
3,在License Agreement的画面中,选择[I accept the agreement],然后单击NEXT。
4,在Select Destination Location的画面中,可以自行设定安装目录,默认为:[C:\Program Files\R\R-2.2.1],单击NEXT。
5,在接下来的过程中一律选则NEXT安装即可。
2 简单的数学计算、数学函数以及如何编辑R程序
1,用R进行简单的计算:
我们可以用R进行以下各类运算。
(1 + 2 - 3 * 4) / 5^6
[1] -0.000576
2,R中还有很多的数学函数可以使用,比如说开方函数、对数函数等等。
结果:[1] 1.414213
你还可以使用多个函数进行计算。例如:
sqrt(100) + round(100) / log10(100)
结果:[1] 60 下面介绍的是R中可以使用的数学函数。
sqrt : 开平方函数
: 绝对值函数
: 2.71828…
: 当x的绝对值比1小很多的时候,它将能更加正确的计算exp(x)-1
: 对数函数
: 对数(底为10)函数
: 对数(底为2)函数
: 正弦函数
: 余弦函数
反正弦函数
反余弦函数
反正切函数
超越正弦函数
超越余弦函数
超越正切函数
反超越正弦函数
反超越余弦函数
反超越正切函数
和log函数一样
当x的绝对值比1小很多的时候,它将能更加正确的计算log(1+x)
Γ函数(伽玛函数)
等同于log(gamma(x))
返回大于或等于所给数字表达式的最小整数
返回小于或等于所 给数字表达式的最大整数
截取整数部分
signif(x,a)
数据截取函数 x:有效位 a:到a位为止
3,R程序的输入/编辑
你可以直接在R的环境里输入R命令执行计算,也可以用任何一款文本编辑器进行编程。R程序的默认文件名后缀是[ .R ]。
4,环境设置函数options()
用options()命令可以设置一些环境变量。
options(digits=10)
这个命令,可以把R的整数表示能力设为10位。
options(warn=-1)
这个命令,可以忽视任何警告。(warn=1时,为不放过任何警告)
使用help(options)可以查看详细的参数信息。
WEKA是一个JAVA写的数据挖掘的工具,RWEKA则是在R中调用WEKA的一个界面。
扩展包说明&下载地址(英文):
3、R的数据类型
R中包含以下的基本数据类型。
空值(NULL)
:该对象里什么都没有(甚至连0也没有)
欠损值、不定值(NA),非数(NaN),无限大(Inf)
:NA:表示数据缺损;NaN:表示用数字无法表示;Inf:无限大
复数(complex)
字符串(character)
:不是单一的字符,而是用双/单引号括起来的字符
逻辑值(logical)
:T表示真,F表示假
4_关于R的一些基本知识
首先看一下这一次要讲的内容。
在用R进行数据分析和计算的时候,将会用到很多变量、函数、数组等等。而对象则是对所有这些变量、函数、数组等的总称。比如说,下面这个式子:x &- 2通常我们会说,x是一个变量,我们通过赋值运算把它的值设为2。但是在R里,不论我们是给一个变量赋值也好,还是对一个数组进行初始化也好,我们统统把它称为[对象]。
什么是对象(Object)
如何改变工作目录
关于扩展包(库函数)
R的数据类型
环境设置函数options()
接下来,我们一个一个的简单介绍。
1,什么是对象(Object)
在用R进行数据分析和计算的时候,将会用到很多变量、函数、数组等等。而对象则是对所有这些变量、函数、数组等的总称。
比如说,下面这个式子:
下面的对象是R的预设对象。我们在命名自己的对象时,是不能与下面这些对象重名的。
使用objects()函数,还可以查看目前存在的对象名。
使用rm()函数,可以消除自己所定义过的对象。( 例如: rm(killme) )
使用rm(list=ls(all=TRUE))命令,可以消除自己所定义过的所有的对象。
命名对象时,要注意大小写。(例如:x和X是两个不同的对象)
2、如何改变工作目录
你可以用getwd()命令来查看当前目录,也可以用类似setwd("c:/usr")的命令来更改当前的目录。
你还可以用dir()命令来查看当前目录里的文件。(好像回到了dos时代…呵呵)
3、关于扩展包(库函数)
R有很好的扩展性能,默认下R自带了以下的扩展包。
base:R的基本扩展包
boot:R的启动函数库
class:Classification的函数库
cluster:进行聚类分析计算的函数库
foreign:读取其它的统计软件(如:SAS…)等生成的文件的函数库
grid:grid图像函数库
KernSmooth:进行核函数密度估计运算的函数库
lattice:lattice图像函数库
MASS:在『Modern Applied Statistics with S』中出现的数据与函数库
methods:定义了在R中用于对象的各种方法、类、程序以及工具。
mgcv:GCV和一般加法模型GAM(generalized additive model)的函数库
nlme:线性混合效果模型和非线性混合效果模型的函数库
rpart:使用了再归算法的分类和回归树的函数库
splines:splines回归的函数库
stats:R的统计函数库
stats4:S4类的统计函数库
survival:
tcltk:Tcl/Tk的接口函数库
tools:用于扩展包开发和管理的函数库
使用library(help="扩展包名")命令可以查看该扩展包的详细信息
使用library(扩展包名)命令可以使用该扩展包
使用search()命令可以查看现在已经读取的扩展包
使用detach("package:扩展包名")命令可以卸载某个扩展包
使用data()命令可以查看当前可使用的数据对象
使用data(package = "扩展包名")命令可以查看在该扩展包中的数据对象
扩展包的安装:
使用下面的命令,可以联网安装扩展包。
options(CRAN="")
install.packages("扩展包名")
如果你已经下载了扩展包的ZIP压缩文件,你可以用下面的命令指定路径安装扩展包。
install.packages("路径名/文件名.zip", contriburl = NULL)
例如:install.packages("c:/adapt_1.0-4.zip", contriburl = NULL)
当然,你也可以通过菜单操作下载和安装扩展包,请自己研究。
5_用R进行基本的统计计算
今天简单的讲一下如何用R进行基本的统计计算。
数据有很多种分类方法,在这里,为了方便理解,暂时把年龄、身高、体重等用数字表示的数据叫做数量型数据;相对的,把血型、性别、职称等用文字叙述的数据叫做质量型数据。
在这里所说的基本的统计计算,是指对各类数量型数据进行求和、平均、求最大值最小值等等的计算。
●和与百分比
在对数量型数据进行分析计算时,求和是经常会使用到的。
比如说,有五位同学,他们的身高分别是:
1.75米 、 1.82米 、 1.78米 、 1.93米 、 1.77米
求他们的身高的总和。
和 = 1.75+1.82+1.78+1.93+1.77 = 9.05米
用R进行求和计算时,你可以按照下面的方式进行计算
& 1.75+1.82+1.78+1.93+1.77
也可以利用R本身的sum()函数,这样的话,会更加便捷。
& shengao &- c(1.75,1.82,1.78,1.93,1.77)
& sum(shengao)
还是刚才那5位同学,他们的体重分别是:
69公斤 , 80公斤 , 78公斤 , 96公斤 , 65公斤
他们的总体重为:
& tizhong &- c(69,80,78,96,65)
& sum(tizhong)
& tizhong &- c(69,80,78,96,65)& sum(tizhong)[1] 388
那么,第一位同学占总体重的多少呢?
按比例计算:
& tizhong/sum(tizhong)
[1] 0.1778351
& tizhong/sum(tizhong)[1] 0.....1675258
按百分比计算:
& 100*(tizhong/sum(tizhong))
[1] 17.78351
& 100*(tizhong/sum(tizhong))[1] 17.56 20.27 16.75258
使用扩展包sca中的percent函数,可以用带%符号的表示方式显示结果。
& library(sca)
& percent(tizhong/sum(tizhong))
[1] "18 %" "21 %" "20 %" "25 %" "17 %"
& library(sca)& percent(tizhong/sum(tizhong))[1] "18 %" "21 %" "20 %" "25 %" "17 %"
还可以用参数d来指定小数点后的表示位数。在不指定的情况下,小数点后的数字不表示。
& percent(tizhong/sum(tizhong),d=1)
[1] "17.8 %" "20.6 %" "20.1 %" "24.7 %" "16.8 %"
& percent(tizhong/sum(tizhong),d=1)[1] "17.8 %" "20.6 %" "20.1 %" "24.7 %" "16.8 %"
如果不想结果被双引号包围,可以用noquote命令
& noquote(percent(tizhong/sum(tizhong),d=1))
[1] 17.8 % 20.6 % 20.1 % 24.7 % 16.8 %
& noquote(percent(tizhong/sum(tizhong),d=1))[1] 17.8 % 20.6 % 20.1 % 24.7 % 16.8 %
●表示中心的统计量
表示数据中心位置的统计量有很多种,最基本的有:平均值、最频值。
上面那五位同学的年龄分别为:
19岁 、 21岁 、 20岁 、 26岁 、 17岁
在求这五位同学的年龄的平均值时,可以用下面这种方法:
& (19+21+20+26+17)/5
& (19+21+20+26+17)/5[1] 20.6
也可以用R自带的mean()函数:
& nianling &- c(19,21,20,26,17)
& mean(nianling)
& nianling &- c(19,21,20,26,17)& mean(nianling)[1] 20.6
在数据中最频繁出现的数值叫做最频值。
我们先用其他的函数来间接的求最频值。
例如:我们在求下面这组数据的最频值时,可以使用table函数。
1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4
& table(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))
1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4& table(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4)) 1
从返回的结果中我们可以清楚地看到,在数据中 "7" 出现了3次,因此 "7" 为该组数据的最频值。
接着,我们直接用函数median()来求最频值。
& median(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))
& median(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))[1] 7
●表示分散的统计量
表示数据中心的统计量虽然很重要,但是表示数据四周的分散信息的统计量也十分的重要。
A:最大值、最小值和范围
我们用tizhong数据,分别计算五位同学体重的最大值、最小值和体重的分布范围。
& max(tizhong)
& min(tizhong)
& range(tizhong)
B:方差和标准偏差(variance AND standard deviation)
在R中,有很方便的求方差和标准偏差的函数var()和sd()。
例如在求tizhong数据的方差和标准偏差时,可以如下计算。
& var(tizhong)
标准偏差:
& sd(tizhong)
[1] 12.01249
C:四分位数
四分位数是指把样本数据按从小到大的顺序等分成四份,各等分点上的数即为四分位数。
例如:数据
6(25%点)
9(50%点)
12(75%点)
16(100%点)
25%点的6和75点的12分别称为下四分位数和上四分位数。
上四分位数与下四分数之差叫做四分位间距。
在R中我们可以用quantile()函数和IQR()函数来求四分位数和四分位间距。
& sifenshu &- c(3,5,6,8,9,11,12,15,16)
& quantile(sifenshu)
& IQR(sifenshu)
今天简单介绍了一下如何用R对一些基本的统计量进行计算,如果有其它的要求的,欢迎提出来,我会进一步介绍的。今天就先到这里了,呵呵。
R中有很多的标准自带的函数,也有很多的由扩展包支持的函数。今天我们主要看一看R中标准自带的函数。
首先简单定义一下什么是函数:
在R中,所谓函数实际上就是一系列程序的组合。
为了能够更深刻的理解这句话,我将在下面这个例子中先一步一步的计算几个数的平均值;再讲如何把这些可以重复利用的运算步骤改写成为自己服务的函数;最后,我们再看一下R中已经为我们准备好了的求平均值的函数的用法:
1,一段程序
我们用R计算下面这5个数的和
在R中,我们刚开始可能会这样写:
&x &- c( 23, 34, 56, 78, 89 )
&for( i in 1:5 ){
&z &- z + x
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.036 (s). 10 q(s)R语言学习-用attach与with简化输入
例:获取每加仑行驶英里数mpg变量的描述性统计量,绘制此变量与发动机排量disp与车身重量wt的散点图:
summarymtcarsmgp
plotmtcarsmpg,mtcarsdisp
plotmtcarsmpg,mtcarswt
上述代码等同于:
attachmtcars #attach将数据框添加到R的搜索路径,R遇到一个变量名后,松林搜索路径中的数据框,以定位于这个变量。
summarympt
plotmpg,disp
plotmpg,wt
detachmtcars#将数据框从搜索路径中移除。
2. with的用法1
withmtcars,
summarympg,disp,wt
plotmpg,disp
plotmpg,wt
大括号之间的语句都只针对数据框mtcars执行,但如果大括号中只有summarympg一句的话,则省略大括号。
3. with的用法2
withmtcars,
statssummarympg
找不到对象'stats'
此例说明,with后的大括号只有大括号内有效,出了大括号,无效。如果需要创建在with结构以外的对象,则要使用替代,例如:
withmtcars,
nokeepstatssummarympg
keepstatssummarympg
nokeepstats
找不到对象'nokeepstats'
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您所在的位置: &
R语言学习笔记(1):R是什么
R语言学习笔记(1):R是什么
在学习量化投资的时候,我发现了R(www.r-project.org)。R到底是什么呢?在开始之前,先看看R的神奇之处。
从CRAN(The Comprehensive R Archive Network)中选择一个镜像,然后下载合适的安装包(R支持Linux、Mac OS X和Windows)。
安装并运行R后,可以看到R的控制台(我的操作系统是Mac OS):
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="start.png" src="/wyfs01/M00/09/63/wKioOVGMlfnj2_1QAAC5eXiz8K8909.jpg" alt="Start" width="600" height="572" border="0" style="margin: 0 padding: 0 border: 0" />
在R的控制台输入如下命令:&
&install.packages('quantmod')&#&安装quantmod包&&require(quantmod)&#引用quantmod包&&getSymbols(&GOOG&,src=&yahoo&,from=&&,&to='')&#从雅虎财经获取google的股票数据&&chartSeries(GOOG,up.col='red',dn.col='green')&#显示K线图&&addMACD()&#增加MACD图&
就能够看到下图的效果了:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="first.png" src="/wyfs01/M00/09/63/wKioOVGMlfnAJTHXAABfL3nwKDE722.jpg" alt="First" width="600" height="382" border="0" style="margin: 0 padding: 0 border: 0" />
最后,退出R:
&q()#Terminate&an&R&Session&
2. R是什么
是不是很神奇?反正当时我完全被Hold住了。
那么R到底是什么?或者说,R到底是做什么用的?从不同的角度出发,对R会有不同的描述。&
从使用角度,R是一个有着统计分析功能及强大作图功能的软件,在GNU协议General Public Licence4下免费发行。
从编程角度,R语言是面向对象的统计编程语言,是由AT&T贝尔实验室所创的S语言发展出的一种方言。
从计算角度,R 是一种为统计计算和图形显示而设计的语言及环境。
从开发角度,R 是一组开源的数据操作,计算和图形显示工具的整合包有各种方式可以进行编程调用。
从架构角度,R 是为统计计算和图形展示而设计的一个系统。它包括一种编程语言,高级别图形展示函数,和其它语言的接口以及调试工具。
如果一定要找到一个与R类似的软件,那就是商业软件Matlab。R和Matlab都是基于编程进行数据分析的工具,Matlab适用的领域更广,而R更擅长统计分析领域。
与Matlab相比,R更具备开放性:
R是自由软件,Matlab是商业软件;
R可以方便的通过&包&进行扩展,R的核心只有25个包,但是有几千个外部包可以调用,当然你也可以开发自己的;
R语言比Matlab的要强大;
R和其他编程语言/数据库之间有很好的接口;其他语言也可以很方便的调用R的API和结果对象。
R常用于金融和统计领域。大多数人使用R就是因为它的统计功能,R的内部实现了很多经典的or时髦的统计技术。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="02e60a9c4fdeb7bd16cdb516d5c6656b.png" src="/wyfs01/M01/09/5E/wKioJlGMlfmTUIkKAADTR8XbRGM760.jpg" alt="02e60a9c4fdeb7bd16cdb516d5c6656b" width="514" height="525" border="0" style="margin: 0 padding: 0 border: 0" />
3. R的核心概念
R语言是一种面向对象的语言,所有的对象都有两个内在属性:元素类型和长度。&
元素类型是对象内元素的基本类型,包括:数值(numeric),字符型(character),复数型(complex)、逻辑型(logical)、函数(function)等,通过mode()函数可以查看一个对象的类型。
长度是对象中元素的数目,通过函数length()可以查看对象的长度。
除了元素类型外,对象本身也有不同的&类型&,表示不同的数据结构(struct)。R中的对象类型主要包括:
向量(vector): 由一系列有序元素构成。
因子(factor):对同长的其他向量元素进行分类(分组)的向量对象。R 同时提供有序(ordered)和无序(unordered)因子。
数组(array):带有多个下标的类型相同的元素的集合
矩阵(matrix):矩阵仅仅是一个双下标的数组。R提供了一下函数专门处理二维数组(矩阵)。
数据框(data frame):和矩阵类似的一种结构。在数据框中,列可以是不同的对象。
时间序列(time series):包含一些额外的属性,如频率和时间.
列表(list):是一种泛化(general form)的向量。它没有要求所有元素是同一类型,许多时候就是向量和列表类型。列表为统计计算的结果返回提供了一种便利的方法。
R中还定义了一些常量,比如:
NA:表示不可用
-Inf: 负无穷
4. R的基本使用
R是一种语法非常简单的表达式语言(expression language)。使用者通过命令(command)与R进行交互。
基本命令要么是表达式(expressions)要么就是赋值(assignments)。如果一条命令是表达式,那么它将会被解析(evaluate),并将结果显示在屏幕上,同时清空该命令所占内存。赋值同样会解析表达式并且把值传给变量但结果不会自动显示在屏幕上。
基于命令,可以用交互的方式或者批处理/脚本文件的方式使用R。
4.2 交互式使用 R
交互式shell是一种很方便的环境,可以进行各种尝试,随时调整过程。与Python、Ruby等语言一样,R也提供了shell环境。本文开始的例子就是以交互的方式使用R。当打开R控制台时,R会显示命令提示符&&&,此时可以输入命令。
下面是交互式使用R的几个例子:
&help.start()&#启动在线帮助,会打开浏览器。&&x&&rnorm(50);&y&&rnorm(x)&&#产生两个随机向量x和y&&plot(x,y)&#使用x,y画二维散点图,&会打开一个图形窗口&&ls()&#查看当前工作空间里面的&R&对象&&rm(x,y)&#清除x,y对象&x&&1:20&&#&相当于x=(1,2,&,20)&
x&&1:20#等价于&x&=&(1,&2,&...,&20)。&&w&&1&+&sqrt(x)/2#标准差的`权重'向量。&&dummy&&data.frame(xx=x,&y=&x&+&rnorm(x)*w)#创建一个由x&和&y构成的双列数据框&dummy&#查看dummy对象中的数据。&&fm&&lm(y&~&x,&data=dummy)#拟合&y&对&x&的简单线性回归&summary(fm)#查看分析结果。&&fm1&&lm(y&~&x,&data=dummy,&weight=1/w^2)#加权回归&summary(fm1)#查看分析结果。&attach(dummy)#让数据框中的列项可以像一般的变量那样使用。&&lrf&&lowess(x,&y)#做一个非参局部回归。&&plot(x,&y)#标准散点图。&&lines(x,&lrf$y)#增加局部回归曲线。&&abline(0,&1,&lty=3)#真正的回归曲线:(截距&0,斜率&1)。&&abline(coef(fm))#无权重回归曲线。&&abline(coef(fm1),&col&=&&red&)#加权回归曲线。&detach()#将数据框从搜索路径中去除。&plot(fitted(fm),&resid(fm),&xlab=&Fitted&values&,&ylab=&Residuals&,&main=&Residuals&vs&Fitted&)一个检验异方差性(heteroscedasticity)的标准回归诊断图。&qqnorm(resid(fm),&main=&Residuals&Rankit&Plot&)#用正态分值图检验数据的偏度(skewness),峰度(kurtosis)和异常值(outlier)。&rm(fm,&fm1,&lrf,&x,&dummy)#再次清空。&
例三: Michaelson 和 Morley 测量光速的经典实验
filepath&&system.file(&data&,&&morley.tab&&,&package=&datasets&)#从对象&morley&中得到实验数据的文件路径&&filepath#查看文件路径&&file.show(filepath)#查看文件内容&&mm&&read.table(filepath)#以数据框的形式读取数据&&mm$Expt&&factor(mm$Expt)&&mm$Run&&factor(mm$Run)#将&Expt&和&Run&改为因子。&&&attach(mm)#让数据在位置&3&(默认)&可见(即可以直接访问)。&&&plot(Expt,&Speed,&main=&Speed&of&Light&Data&,&xlab=&Experiment&No.&)#用简单的盒状图比较五次实验。&&&fm&&aov(Speed&~&Run&+&Expt,&data=mm)#分析随机区组,`runs'&和&`experiments'&作为因子。&&&summary(fm)&&&&&fm0&&update(fm,&.&~&.&-&Run)&&anova(fm0,&fm)#拟合忽略&`runs'&的子模型,并且对模型更改前后进行方差分析。&&&detach()&&rm(fm,&fm0)#在进行下面工作前,清空数据。&&&&&&&&#下面是等高线和影像显示的示例&&x&&seq(-pi,&pi,&len=50)#x&是一个在区间&[-pi\,&pi]&内等间距的50个元素的向量&&y&&x&&&&&f&&outer(x,&y,&function(x,&y)&cos(y)/(1&+&x^2))#f&是一个方阵,行列分别被&x&和&y&索引,对应的值是函数&cos(y)/(1&+&x^2)&的结果。&&&oldpar&&par(no.readonly&=&TRUE)&&par(pty=&s&)#保存图形参数,设定图形区域为&正方形&。&&&contour(x,&y,&f)&&contour(x,&y,&f,&nlevels=15,&add=TRUE)#绘制&f&的等高线;增加一些曲线显示细节。&&&fa&&(f-t(f))/2#fa&是&f&的&非对称部分&(t()&是转置函数)。&&&contour(x,&y,&fa,&nlevels=15)#画等高线&&par(oldpar)#&恢复原始的图形参数&&image(x,&y,&f)&&image(x,&y,&fa)#绘制一些高密度的影像显示&&objects();&&&rm(x,&y,&f,&fa)#在继续下一步前,清空数据。&&&&&th&&seq(-pi,&pi,&len=100)&&z&&exp(1i*th)#1i&表示复数&i&&&&&par(pty=&s&)&&plot(z,&type=&l&)#图形参数是复数时,表示虚部对实部画图。这可能是一个圆。&&&w&&rnorm(100)&+&rnorm(100)*1i#假定我们想在这个圆里面随机抽样。一种方法将让复数的虚部和实部值是标准正态随机数&...&&&w&&ifelse(Mod(w)&&1,&1/w,&w)#将圆外的点映射成它们的倒数。&&&plot(w,&xlim=c(-1,1),&ylim=c(-1,1),&pch=&+&,xlab=&x&,&ylab=&y&)&&lines(z)#所有的点都在圆中,但分布不是均匀的。&&&&&&#下面采用均匀分布。现在圆盘中的点看上去均匀多了。&&&w&&sqrt(runif(100))*exp(2*pi*runif(100)*1i)&&plot(w,&xlim=c(-1,1),&ylim=c(-1,1),&pch=&+&,&xlab=&x&,&ylab=&y&)&&lines(z)&&rm(th,&w,&z)#再次清空。&&&q()#离开&R&程序&
4.3 工作空间(workspace)
R shell 可以任意地保存一个完整的环境,称为工作空间(workspace)。前面的例子中,运行q()命令退出R时,会被询问是否要保存工作空间:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="____
__9.34.53.png" src="/wyfs01/M01/09/63/wKioOVGMlfrC4xx7AADIDqlFVn0865.jpg" alt="
9 34 53" width="600" height="572" border="0" style="margin: 0 padding: 0 border: 0" />
工作空间(workspace)保存了一些环境信息。每次与R的会话(session)可以从一个全新的环境开始,也可以在原来的基础上继续,这些运行信息就保存在工作空间中。
如果在UNIX系统以命令行的方式启动R,则当前目录就是本次会话的工作空间:
$ mkdir r_test
$ cd r_test/
看看R能为工作空间保存些什么内容:
& x &- rnorm(50); y &- rnorm(x)& #产生两个随机向量x和y
Save workspace image? [y/n/c]: y
会发现R保存了两个隐藏文件:.RData和.Rhistory。其中.RData以二进制的方式保存了会话中的变量值,.Rhistory以文本文件的方式保存了会话中的所有命令。
如果在一个已有的工作空间中启动R,会提示:
[原来保存的工作空间已还原]
此时可以用函数ls()和history()看到之前保存的数据和命令。
使用rm()/remove()可以删除工作空间中的变量。
在R控制台,也可以使用函数getwd()和setwd()来获取/设置工作空间目录;使用list.files()查看当前目录下的文件。
如果以GUI方式运行R控制台,可以通过菜单来加载或保存工作空间。
4.4 脚本/批处理
前面提到R可以在工作空间中保存历史命令。其实这就是一个工作空间中的默认脚本,当加载工作空间时自动执行。
我们完全可以写自己的脚本,指定R批量执行一些命令。通常,自己的脚本会以&.R&作为扩展名。一个最简单的例子test.R:
x &- rnorm(50); y &- rnorm(x)& #产生两个随机向量x和y
plot(x,y) #使用x,y画二维散点图, 会打开一个图形窗口
并保存到工作空间,然后在R控制台,使用命令:
& source('test.R')
就可以执行该脚本。
& source('test.R', echo=TRUE)可以让脚本执行时输出更详细的信息。
编写脚本自动执行一些任务时,sink()函数会比较有用:
& & sink(&record.lis&)
会把所有后续的输出结果从控制台重定向到外部文件 record.lis 中,此时控制台中看不到命令输出的结果。使用命令:
& & sink()
可以让输出流重新定向到控制台。
5. 帮助系统
GNU软件通常都会有非常好的帮助系统,无论对于初学者还是熟练者都能带来很大的帮助。R当然也不例外。R中提供的帮助主要有以下几种:
5.1 文档和搜索
help.start()& 命令会打开浏览器,显示帮助文档。包括一些入门的文档,以及搜索功能(链接:Search Engine & Keywords)。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="d12e79b600aa14a7fa3f195de1a20f2d.png" src="/wyfs01/M01/09/63/wKioOVGMlfqhBzyoAAC6Um2ec7k859.jpg" alt="D12e79b600aa14a7fa3f195de1a20f2d" width="579" height="600" border="0" style="margin: 0 padding: 0 border: 0" />
demo()会按照包分组,列出所有可用的演示:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="f5801597bafb7f4b90dc6e.png" src="/wyfs01/M00/09/5E/wKioJlGMlfribqb1AADcw8P98XU658.jpg" alt="F5801597bafb7f4b90dc6e" width="587" height="560" border="0" style="margin: 0 padding: 0 border: 0" />
按照名称可以开始演示,如:
demo(is.things)
5.3 函数帮助
如果已经知道一个函数的名称(比如solve),需要了解其所属的包、用途、用法、参数说明、返回值、参考文献、相关函数以及范例等,可以使用命令
help(solve)或 ?solve
该命令会弹出一个窗口:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="8fec96cfafa4e55ca36d6.png" src="/wyfs01/M00/09/5E/wKioJlGMlfrRZpT-AAC1kQPdjQ0684.jpg" alt="8fec96cfafa4e55ca36d6" width="600" height="483" border="0" style="margin: 0 padding: 0 border: 0" />
5.4 函数示例
对于函数,还可以使用example()执行示例,比如:
example(solve)
5.5 关键字和运算符
与函数的帮助类似,但是需要加上引号,如:
& ? '[[' & # 等价于 help('[[')
& ?'+'& & #等价于 help('+')
& ?'if'& & #等价于 help('if')
如果不知道函数名称,还可以进行搜索,比如:
??'analysis'& #等价于 search('analysis')
498)this.width=498;' onmousewheel = 'javascript:return big(this)' title="4fbbda486d4ed52cccc8.png" src="/wyfs01/M00/09/63/wKioOVGMlfqQPJ8YAADxitvZOPE472.jpg" alt="4fbbda486d4ed52cccc8" width="600" height="525" border="0" style="margin: 0 padding: 0 border: 0" />
5.7 官方搜索
前面的帮助都受限于本地环境已经安装的包。如果要搜索R中所有的资源(包,函数、数学方法等),需要在R的官方网站搜索:
6. 学习资料
官方网站上的一些手册和文档(必看)
华盛顿大学的一个R教程
原文链接:
【责任编辑: TEL:(010)】
关于的更多文章
R语言是大数据分析和挖掘重要的工具,R是用于统计分析、绘图的语
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
今天是被国际上众多科技公司和软件企业承认的业内人士
互联网一大真理便是,有痛点的地方就有机会。现在最想
Eclipse 是一个开源的、可扩展的集成开发环境。平台本
本书全面系统地概括了计算机网络的基本理论,详细阐述了OSI模型与网络协议、网络规划与综合布线、对等网络与服务器/客户端网络、
51CTO旗下网站

我要回帖

更多关于 r语言 attach 的文章

 

随机推荐