帐号: 密码:
// 设为首页 // 收藏本站 // 请您留言 // 网址导航
远方教程-满足你的求知欲!
站内搜索:
HTML ASP PHP CSS DIV Dreamweaver Photoshop Word Excel PPT SEO技巧
您当前位置:网站首页 >> 统计之窗 >> R语言专区 >> R编程入门 >> 阅读文章

R技巧[45]:R语言循环语句

来源:远方教程 作者:远方教程 发布时间:2019-11-07 查看次数:4340 访问[新版]

       

在R语言中,可以使用for、while 以及repeat-break实现循环语句。循环语句可以简单依据计数操作(当计数器达到了设定的循环次数时自动停止)或者某一向量来进行轮询。

1.for循环语句

一组用户在网上的页面浏览量(PV)如表2-26所示。

表2-26 数据集
用户ID 页面浏览量PV 用户ID 页面浏览量PV 用户ID 页面浏览量PV
1 1 6  1 11 1
2 1 7 15 12 2
3 2 8  7 13 3
4 3 9 18 14 1
5 1 10  1 15 1

如果要对用户进行分类,如规定每日页面浏览量PV为1~5的是初级用户,6~15的为中级用户,PV在16页以上的为高级用户,该如何操作?采用表2-27中的两种方式,即可把PV数据处理为以用户进行分类的数据。

表2-27 方式类比
方式一 方式二
pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
result<- ""
m<-1
for(i in pv){ 
      if(i<=5){
            result[m]<- "初级用户";
      } else if(i<=15){
            result [m]<- "中级用户";
      } else{
            result [m]<- "高级用户";
      }
      m<-m+1
} pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
result<-""
for(i in 1:length(pv)){ 
      if(pv[i]<=5){
            result[i]<- "初级用户";
      } else if(pv[i]<=15){
            result[i]<- "中级用户";
      } else{
            result[i]<- "高级用户";
      }
}

不知道循环次数时,可以直接遍历相关向量(i in pv语句)。 知道循环次数时,可以设置遍历次数(i in 1:length(pv)语句)

2.while循环语句

在介绍while循环语句时,同样使用上面的数据为例进行说明,如下所示:
pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
i<-1
result<-""
while(i<length(pv)){
    if(pv[i]<=5){
          result[i]<- "初级用户";
    } else if(pv[i]<=15){
          result[i]<- "中级用户";
    } else{
          result[i]<- "高级用户";
    }
    i<-i+1
}

由此可以看出,for实际上是通过遍历一个向量的方式来控制循环次数,while则是直接设置循环的范围。for的应用基本可以覆盖while,所以笔者更加倾向于使用for循环语句。

3.repeat-break循环语句

repeat是无限循环语句,并且会在达到循环条件后使用break语句直接跳出循环。例如:
pv<-c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)
i<-1
result<-""
repeat{
    if(i>length(pv)){    #设置循环结束时的跳出语句
         break
    }
    if(pv[i]<=5){      
         result[i]<- "初级用户";
    } else if(pv[i]<=15){
          result[i]<- "中级用户";
    } else{
          result[i]<- "高级用户";
    }
    i<-i+1
}

实例中的break也叫跳出循环命令,执行后将直接跳出循环语句。R语言还提供了一个next语句,执行后只会跳出本次循环,而不会跳出整个循环语句。

打印 打印 | 关闭 关闭 评论
相关文章
图片新闻
站内搜索  
搜索
猜您喜欢  
最新更新  
阅读排行  
关于我们 | 联系方式 | 大事记 | 免责声明 | | 给我留言
部分广告源自金山联盟2345联盟 QQ咨询 站长之家QQ群:232617873
Copyright 2024 远方教程 © All Rights Reserved.

回顶部