您的位置:首页 > 其它

R语言-循环repeat,while,for,foreach,iter,next,break

2018-03-19 15:40 1016 查看
R中有三种不同的循环结构:1.repeat结构它只是简单的重复同一个表达式:repeat expression,如果要跳出循环,可以使用break命令,若要跳至循环中的下一轮迭代,需要使用next命令;如果在循环中不包括break命令,R代码将会是一个无限循环。因此,常用的结构如下:
举例如下:
2.while结构:在某个条件为真时,重复某一特定的表达式
举例如下:
3. for循环结构可以遍历向量或者列表中的每个元素:
举例如下:
 4.循环扩展我们都知道C#或者java等现代编程语言中,都会有foreach等迭代器。R语言本身并没有提供这样的机制,不过我们可以通过R语言添加包来实现(1)迭代器:从另外一个对象中返回元素的抽象对象。使用迭代器可以使代码具有更好的可读性同时易于并行执行。添加R语言扩展包iterators可以实现迭代器功能。迭代器可以返回向量、数组、数据框或者其他对象的元素,当然也可以返回函数。
举例如下:
(2)foreach循环:该功能通过R语言扩展包foreach实现,foreach能够循环遍历某个对象(向量、矩阵、数据框或者迭代器)中的多个元素,针对各个元素执行表达式,并返回结果。
真正执行foreach循环,需要使用%do%或者%dopar%运算符
%do%运算符顺序执行表达式,而%dopar%运算符可以用来并行执行表达式。五、R语言中的break,next
(1)R语言存在next语句当我们想跳过循环的当前迭代而不终止它时便可使用next。 遇到next时,R解析器跳过本次迭代,并开始循环的下一次迭代。

语法

在R中创建Next语句的基本语法是 -
next

流程图



v <- LETTERS[1:6]
for ( i in v) {

if (i == "D") {
next
}
print(i)
}
当上面的代码被编译和执行时,它产生以下结果 -
[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"

(2)R语言中的break语句有以下两种用法:当在循环中遇到break语句时,循环立即终止,并且程序控制在循环之后的下一语句处恢复。

它可以用于终止switch语句中的情况(在下一章中讨论)。

语法

在R中创建break语句的基本语法是 -
break
流程图


v <- c("Hello","loop")
cnt <- 2

repeat {
print(v)
cnt <- cnt + 1

if(cnt > 5) {
break
}
}
当上面的代码被编译和执行时,它产生以下结果 -
[1] "Hello" "loop"
[1] "Hello" "loop"
[1] "Hello" "loop"
[1] "Hello" "loop"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: