找回密码
 注册
查看: 34133|回复: 4

R语言中的for循环怎么用

[复制链接]
发表于 2011-1-22 21:34:07 | 显示全部楼层 |阅读模式
循环控制:for循环,repeat 和while
R 语言有下面形式的for 循环架构
> for (name in expr 1 ) expr 2
其中name 是循环变量,expr 1 是一个向量表达式(常常以1:20这种形式出现),
而expr 2 常常是根据虚拟变量name 而设计的成组表达式。在name 访问expr 1 所有
可以取到的值时,expr 2 都会运行。
下面是个例子。假定ind 是分类指标向量(vector of class indicators),我们将
依这种分类指标绘制y 对x的散点图。一种方法时用函数coplot()3 产生对应因子各个
水平的散点图。另外一种方法就是把所有图在屏幕上同时显示,如下面命令所示:
> xc <- split(x, ind)
> yc <- split(y, ind)
> for (i in 1:length(yc)) {
plot(xc[], yc[]);
abline(lsfit(xc[], yc[]))
}
(函数split() 通过某个因子把一个大的向量分成一系列小的向量。这是一个非常
有用的函数,常常和盒状图一起使用。具体细节可以用help 命令得到。)
警告:相比其他程序语言,R 代码里面很少使用for() 形式的循环语
句。在R 里面用`完整对象'(whole object)形式可能既清晰又高效4。
其他循环语句包括
> repeat expr
和语句
> while (condition) expr
关键字break可以用于结束任何循环,甚至是非常规的。它是结束repeat 循环的
唯一办法。
关键字next 可以用来结束一次特定的循环,然后直接跳入\下一次"循环。
控制语句的应用常常和函数相关。这在下一章编写你自己的函数<页码:54>中
会详细讨论,同时也会引用更多的例子。
回复

使用道具 举报

发表于 2011-8-19 16:47:21 | 显示全部楼层
你好,请问循环怎么输不出值。我的代码:>for(i in 1:6){t=i+1;t}。请问您是什么原因?
回复 支持 反对

使用道具 举报

发表于 2012-12-24 16:49:17 | 显示全部楼层
hong_010 发表于 2011-8-19 16:47
你好,请问循环怎么输不出值。我的代码:>for(i in 1:6){t=i+1;t}。请问您是什么原因?

print(t)


回复 支持 反对

使用道具 举报

发表于 2013-9-16 19:10:11 | 显示全部楼层
坐在地板上同意板凳上的意见!{:soso_e113:}
回复 支持 反对

使用道具 举报

发表于 2015-9-15 21:28:36 | 显示全部楼层
建议使用 dplyr 嚄!Hadley Wickham 编写的函数向来都会考虑到大数据都可以使用,高效率的 parallel。{:soso_e121:}
  1. > dplyr::llply(..., .parallel=TRUE)
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-1-30 14:42 , Processed in 0.039117 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表