这次介绍R语言中的条件语句和循环语句,将为大家介绍if、for、while、repeat。采用介绍函数和实战练习的方式,希望大家能够更好的理解。

if语句

  if (cond) {cond为真时执行的语句
}else{cond为假时执行的语句
}

如果需要一次性处理多个true和false数据时,可以使用ifelse()函数

ifelse(test, #测试的对象yes, #true,选择该值no, #false,选择该值
)

以判断奇数偶数为例:

x <- c(1,3,5,7,8,6) # x%% 2 == 0 作为判断条件
ifelse(x %% 2 == 0 ,"偶数","奇数")

所得结果:

[1] "奇数" "奇数" "奇数" "奇数" "偶数" "偶数"

循环语句

在循环语句中可以使用break与next语句调整循环的执行流程
break:退出循环语句
next:终止当前正在执行的语句块,进入下一循环

for语句

for (i in data) {使用i的语句,对每个i执行该语句
}

这里依旧采用奇数偶数这个例子:

x <- c(1:15)
count <- NULL # 创建一个空集
for (i in x) {if (i %% 2 == 0) {count <- append(count,"偶数") # append函数可以向向量中添加值}else{count <- append(count,"奇数")}
}
print(count)

结果如下图所示:

> print(count)[1] "奇数" "偶数" "奇数" "偶数" "奇数" "偶数" "奇数" "偶数" "奇数"
[10] "偶数" "奇数" "偶数" "奇数" "偶数" "奇数"

while语句

while (cond) {cond为true执行的语句,直到cond为false,退出循环
}
i <- 0
count <- NULL # 创建一个空集
while (i <= length(x)) {i <- i + 1if (i %% 2 == 0) {count <- append(count,"偶数") # append函数可以向向量中添加值}else{count <- append(count,"奇数")}
}
print(count)

结果和for语句的结果相同。

repeat语句

repeat{循环的语句,直到遇到退出的条件
}

大家可以自己尝试运用repeat函数实现奇数偶数的判断,遇到问题可以留言交流哦,互相提高,嘿嘿。

实战练习

问题1:
水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。

要求:打印输出 n = 3 时所有的"水仙花数"。

#method1定义函数
flower <- function(x){x=100:xa <- floor(x/100)#floor向下取整,得到百位数b <- floor((x- 100*a)/10)#十位数c <- x - a*100 - b*10#个位数y = a^3 + b^3 +c^3 == xdata <- data.frame(x,y)data[y == T,1]
}
#method2条件循环语句
conter <- c()
for (i in 100:999) {a <- floor(i/100)#floor向下取整,得到百位数b <- floor((i- 100*a)/10)#十位数c <- i - a*100 - b*10#个位数if(i == a^3 + b^3 + c^3){conter <- append(conter,i)#append函数将value给x}
}
print(conter)

给大家留一个小作业:
话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。当小兔子长到第三个月后,也会每个月再生一对小小兔子.

问题:假设条件,兔子都不死的情况下,问每个月的兔子总数为多少?

R语言编程——条件、循环语句相关推荐

  1. R语言编程艺术(3)R语言编程基础

    本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...

  2. 【R语言编程基础】【课后习题答案】【全】

    文章目录 第1章 R语言概述 1.选择题 2.操作题 第2章 数据对象与数据读写 1.选择题 2.操作题 第3章 数据集基本处理 1.选择题 2.操作题 第4章 函数与控制流 1.选择题 2.操作题 ...

  3. R语言编程入门--replicate()函数比较有意思!

    I. 导论 简单来讲,编程是借助计算机来解决某个问题.学习编程的就是训练我们解决问题的能力.有这样一种说法:在未来,不会编程的人即是文盲. 1 为什么要学习R编程 大部分情况下解决某些问题还需要依赖一 ...

  4. R语言编程 第一讲 变量与赋值

    R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...

  5. [转载] Python入门(输入/输出、数据类型、条件/循环语句)

    参考链接: Python中的循环技术 在介绍之前我们先来看看计算机的三个根本性基础: 1.计算机是执行输入.运算.输出的机器 2.程序是指令和数据的集合 3.计算机的处理方式有时与人们的思维习惯不同 ...

  6. r语言remarkdown展示图_十个超级好用的R语言编程技巧,一般人绝不知道!

    全文共3997字,预计学习时长8分钟 图片来源:pexels.com/@pixabay 由于R语言生态系统内容繁复并在不断发展,人们往往容易忽视一些切实有用的知识.这些技巧往往非常简单,但对于完成工作 ...

  7. rmd中无法打开链结r_十个超级好用的R语言编程技巧,一般人绝不知道!

    全文共3997字,预计学习时长8分钟 图片来源:pexels.com/@pixabay 由于R语言生态系统内容繁复并在不断发展,人们往往容易忽视一些切实有用的知识.这些技巧往往非常简单,但对于完成工作 ...

  8. r语言 siar 代码_平滑转换自回归(STAR)模型的R语言编程实现详解

    总体讲,ST(Smooth transition)模型,这块的code混乱的比较狗血,文献中的做法也是千奇百怪, 单变量的有 :STAR, LSTAR, ESTAR, 多变量的有:STVAR, LST ...

  9. Shell编程之循环语句(详细讲解以及脚本案例)

    Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...

最新文章

  1. 为什么不建议用try catch处理异常?
  2. 继承ViewGroup:重写onMeasure方法和onLayout、requestlayout方法
  3. SpringBoot_入门-Spring Boot简介
  4. 【131天】尚学堂高淇Java300集视频精华笔记(65-66)
  5. 【分布式】Zookeeper在大型分布式系统中的应用
  6. ajax post json php,ajax POST json对象给PHP,PHP怎么接收值
  7. MVVM js 库JsRender/JsViews和knockoutjs介绍
  8. Android开发学习——基础学习
  9. 服务发现系统consul-HTTP API
  10. web 基本概念辨异 —— URI 与 URL
  11. Java 8 Stream 闪亮登场!
  12. Jmeter(五)录制功能
  13. 俄罗斯方块 java_java 俄罗斯方块
  14. CSS样式--前端布局(五)
  15. Python——IDLE是什么意思?
  16. 3A(AF AE AWB)综述
  17. 复利计算计算器_C程序计算复利
  18. 计算机组成原理sltu指令,计算机组成原理第二次作业题及答案.doc
  19. 使用树莓派3B、RTL-SDR、OpenWebRX搭建无线电监测站
  20. 什么是码元?什么是比特?

热门文章

  1. 迅雷7手动去广告详细教程
  2. 论文笔记:Cross-Lingual Semantic Role Labeling with High-Quality Translated Training Corpus
  3. 基于JavaWeb(SSM框架)的网上书店的设计与实现
  4. (STITP)jotm-btp的深入分析
  5. 接口的作用和使用实例(何为紧耦合和松耦合)
  6. 模块化机房解决方案(效果图)
  7. 实用汽车英语(一)——汽车基本结构
  8. FLEXBOX FROGGY关卡答案
  9. C构造函数的要点梳理~
  10. PC#1 ping PC#2,请描述PC1和PC2之间的通信过程【杭州多测师】【杭州多测师_王sir】...