R语言的流程控制

ifelse(X,Y,Z)

若X成立,则执行Y,否则执行Z

 

if(cond) expr

if(cond) cons.expr else alt.expr

for(var in seq) expr

while(cond) expr

repeat expr

在三种循环中可以用break和next

 

for(i in 1:length(x)) 循环

有时可避免使用循环,方法:

1.向量化:R语言的大部分操作可直接作用于向量,效率很高

2.用多种apply函数,如apply(X,MARGIN,FUN,...),

其中:

X:一个矩阵

MARGIN:对行(MARGIN为1)还是对列(MARGIN为2),或者同时对行和列(MARGIN为c(1,2))

FUN:一个函数(或操作符,需用引号限定)

 

switch(EXPR,...)

其中:

EXPR:可以为一个number或字符串

...:the list of alternatives

若EXPR为字符串,则该list必须具有名字,每个list项为name_i=expr_i,当EXPR与某个name_i严格匹配时,expr_i为结果;当expr_i为空时,类似于多个case分支共用一个值。

若EXPR不为字符串,则强制转换为integer,后面的list按EXPR取值从1开始对应计算,并作为该函数的结果。

 

例子:

(1)for(i in c(-1:3,0)) print(switch(i,1,2,3,4))

结果为

NULL
NULL
[1] 1
[1] 2
[1] 3
NULL

(2)switch("cc",a=1,cc=,cd=,d=2)

结果为

2

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值