您所在位置: 网站首页 / 文档列表 / 软件工程 / 文档详情
(word完整版)第四章--R编程实践.doc 立即下载
上传人:17****21 上传时间:2024-09-09 格式:DOC 页数:9 大小:96KB 金币:5 举报 版权申诉
预览加载中,请您耐心等待几秒...

(word完整版)第四章--R编程实践.doc

(word完整版)第四章--R编程实践.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

5 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(word完整版)第四章R编程实践(word完整版)第四章R编程实践PAGE\*MERGEFORMAT9(word完整版)第四章R编程实践第四章R编程实践自此,我们已经对R的功能有个全面的了解。一些数据分析都是在R对话窗口(RConsole)中进行的,但对于复杂的数据分析显然是不行方便的。下面将从统计语言和编程角度来说明,我们将会了解一些在R编程实践中采用的简单的概念。循环和向量化相比下拉菜单式的程序(R下开发的统计包RCommander),R的一个优势在于它可以把一系列连续的操作简单的程序化.这一点上和所有其他计算机编程语言是一致的,但R有一些特性使得非专业人士也可以很简单的编写程序.和其他编程语言一样,R有一些和C语言类似的控制结构.(一)控制结构1。条件语句:条件语句常用于避免除零或负数等数学问题.它有两种形式:1)if(条件)表达式1else表达式22)ifelse(条件,yes,no)例如:if(x>=0)sqrt(x)elseNAifelse(x>=0,sqrt(x),NA)2。循环:有三种形式:1)for(变量in向量)表达式2)while(条件)表达式3)repeat表达式例如:假定我们有一个向量x,对于向量x中值为b的元素,我们把0赋给另外一个等长向量y的对应元素,否则赋1。我们首先创建一个与向量x等长的向量y:y〈—numeric(length(x))for(iin1:length(x))if(x[i]==b)y[i]<-0elsey[i]<-1几个指令可以放在一个大括弧里面:for(iin1:length(x)){{y[i]〈-0…}x<—rnorm(10,—5,0.1)y<-rnorm(10,5,2)X<-cbind(x,y)#矩阵X的列名保持”x”和”y"for(iin1:5/2)z[i]〈—x[i]+y[i]另外一种可能的情况是当条件为真的时候一条指令才执行:while(myfun>minimum){…}count〈-0while(count<10){print(count)count=count+1}#如果设置不正确while循环可以能导致无限循环,要小心#computeEstimate()x0〈-1tol<—1e-5repeat{x1<—rnorm(1,1,2)if(abs(x1—x0)〈tol){break}else{x0〈-x1}}#next,returnfor(iin1:100){if(i〈=20){##skipnext}#dosomthinghere}3.分支控制语句switch(statement,list)switch(2,’banana’,’apple’,'other’)num〈—10mode<-num%%3#模3cat('modeis',switch(mode+1,0,1,2),'\n’)例子见“客观赋权法。R".(二)向量化但是,由于R的一些特性,在很多情况下循环和控制结构可以避免:向量化.向量化使得循环暗含在表达式中,前面的例子中已经多次采用了.比如,两个向量之和:>z〈-x+y这种加和可以通过循环结构来实现,就像很多编程语言采用的策略一样:>z<—numeric(length(x))〉for(iin1:length(z))z[i]<-x[i]+y[i]在这个例子中,由于要用到向量的下标系统,有必要预先创建一个向量z.显然,这种显式的循环仅仅用于向量x和y等长的情况:如果不是这样程序代码需要改变,而第一种表达方式在任何情况下都成立(如果对R的向量循环使用方式不了解的话,x和y不等长时要小心一点)。条件语句(if…else)可以用逻辑索引向量代替;同样上面的例子:〉y[x==b]〈—0〉y[x!=b]<—1除了让代码更简洁,向量化的表达式在计算上效率更高,特别是大数据量的数据集.(三)运用apply等函数有多个’apply'形式的函数用于避免使用代码的显式循环结构。apply作用于矩阵的行或者/和列,它的语法规则是apply(X,MARGIN,FUN,…),其中X是一个矩阵,MARGIN表明是对行(1)还是列(2),或者二者(c(1,2))进行操作,FUN是一个函数(或操作符,但是这种情况下操作符要在一个括弧里面指定),…是函数FUN可能的参数。一个简单的例子如下。>x<-rnorm(10,-5,0.1)>y〈-rnorm(10,5,2)>X<-cbind(x,y)#矩阵X的列名保持”x"和"y”〉apply(X,2,mean)lapply()可以用于一个列表对象:它的语法类似apply并且返回
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

(word完整版)第四章--R编程实践

文档大小:96KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用