R语言循环语句
1、for语句
R语言批量处理1——输出list文件及数据框长宽转换
R语言批量处理2——导入excel,定位提取合并为数据框data.frame
2、while循环语句
- 注意执行顺序,先执行f[i]+f[i+1]<1000,然后往下走,与下面repeat有区别
- 例子 计算斐波那契数列
> f=1
> f[2]=1
> i=1
> while(f[i]+f[i+1]<1000){
+ f[i+2]=f[i]+f[i+1]
+ i=i+1
+ }
> f
[1] 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
> i
[1] 15
3、repeat语句
- 与if常常联用,注意执行顺序,f[i]+f[i+1]>1000,与while<1000不同
> f=1
> f[2]=1
> i=1
> repeat{
+ f[i+2]=f[i]+f[i+1]
+ i=i+1
+ if (f[i]+f[i+1]>1000) break
+ };f
[1] 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
> i
[1] 15
4、举例
-
甲和乙玩游戏,规则如下:
- 甲每胜一局赢1元,负一局输1元,甲每局获胜的概率都是0.5,每局之间相互独立。(类似抛硬币)
- 问题:甲的初始资产为50元,反复游戏,直到甲资产变成0或者200为止。请问,甲先输到0 的概率。
-
while语句
a=c(1,-1)
f[1]=50
i=1
while (f[i]!=0) {
x <- sample(a,1)
f[i+1]=f[i]+x
i=i+1
}
i
repeat语句
a <- c(1,-1)
f=50
i=1
repeat{
x <- sample(a,1)
f[i+1]=f[i]+x
i=i+1
if(f[i]==0|f[i]==200) break
};f
i
5、引用
R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)