R语言编程——条件、循环语句
这次介绍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语言编程——条件、循环语句相关推荐
- R语言编程艺术(3)R语言编程基础
本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...
- 【R语言编程基础】【课后习题答案】【全】
文章目录 第1章 R语言概述 1.选择题 2.操作题 第2章 数据对象与数据读写 1.选择题 2.操作题 第3章 数据集基本处理 1.选择题 2.操作题 第4章 函数与控制流 1.选择题 2.操作题 ...
- R语言编程入门--replicate()函数比较有意思!
I. 导论 简单来讲,编程是借助计算机来解决某个问题.学习编程的就是训练我们解决问题的能力.有这样一种说法:在未来,不会编程的人即是文盲. 1 为什么要学习R编程 大部分情况下解决某些问题还需要依赖一 ...
- R语言编程 第一讲 变量与赋值
R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...
- [转载] Python入门(输入/输出、数据类型、条件/循环语句)
参考链接: Python中的循环技术 在介绍之前我们先来看看计算机的三个根本性基础: 1.计算机是执行输入.运算.输出的机器 2.程序是指令和数据的集合 3.计算机的处理方式有时与人们的思维习惯不同 ...
- r语言remarkdown展示图_十个超级好用的R语言编程技巧,一般人绝不知道!
全文共3997字,预计学习时长8分钟 图片来源:pexels.com/@pixabay 由于R语言生态系统内容繁复并在不断发展,人们往往容易忽视一些切实有用的知识.这些技巧往往非常简单,但对于完成工作 ...
- rmd中无法打开链结r_十个超级好用的R语言编程技巧,一般人绝不知道!
全文共3997字,预计学习时长8分钟 图片来源:pexels.com/@pixabay 由于R语言生态系统内容繁复并在不断发展,人们往往容易忽视一些切实有用的知识.这些技巧往往非常简单,但对于完成工作 ...
- r语言 siar 代码_平滑转换自回归(STAR)模型的R语言编程实现详解
总体讲,ST(Smooth transition)模型,这块的code混乱的比较狗血,文献中的做法也是千奇百怪, 单变量的有 :STAR, LSTAR, ESTAR, 多变量的有:STVAR, LST ...
- Shell编程之循环语句(详细讲解以及脚本案例)
Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...
最新文章
- 为什么不建议用try catch处理异常?
- 继承ViewGroup:重写onMeasure方法和onLayout、requestlayout方法
- SpringBoot_入门-Spring Boot简介
- 【131天】尚学堂高淇Java300集视频精华笔记(65-66)
- 【分布式】Zookeeper在大型分布式系统中的应用
- ajax post json php,ajax POST json对象给PHP,PHP怎么接收值
- MVVM js 库JsRender/JsViews和knockoutjs介绍
- Android开发学习——基础学习
- 服务发现系统consul-HTTP API
- web 基本概念辨异 —— URI 与 URL
- Java 8 Stream 闪亮登场!
- Jmeter(五)录制功能
- 俄罗斯方块 java_java 俄罗斯方块
- CSS样式--前端布局(五)
- Python——IDLE是什么意思?
- 3A(AF AE AWB)综述
- 复利计算计算器_C程序计算复利
- 计算机组成原理sltu指令,计算机组成原理第二次作业题及答案.doc
- 使用树莓派3B、RTL-SDR、OpenWebRX搭建无线电监测站
- 什么是码元?什么是比特?
热门文章
- 迅雷7手动去广告详细教程
- 论文笔记:Cross-Lingual Semantic Role Labeling with High-Quality Translated Training Corpus
- 基于JavaWeb(SSM框架)的网上书店的设计与实现
- (STITP)jotm-btp的深入分析
- 接口的作用和使用实例(何为紧耦合和松耦合)
- 模块化机房解决方案(效果图)
- 实用汽车英语(一)——汽车基本结构
- FLEXBOX FROGGY关卡答案
- C构造函数的要点梳理~
- PC#1 ping PC#2,请描述PC1和PC2之间的通信过程【杭州多测师】【杭州多测师_王sir】...