首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在R中,有比嵌套的if else语句更好的选项吗?我想要更整洁的,少一些括号的

在R中,除了嵌套的if else语句,还有其他更整洁的选项,例如使用switch语句或者使用dplyr包中的case_when函数。

  1. switch语句:switch语句可以根据一个表达式的值选择执行不同的代码块。它的语法如下:
代码语言:txt
复制
switch(EXPR, CASE1, CASE2, ...)

其中EXPR是一个表达式,可以是一个变量或者一个函数的返回值,CASE1、CASE2等是不同的代码块。根据EXPR的值,选择执行相应的代码块。switch语句可以避免嵌套的if else语句,使代码更加简洁。具体使用示例可以参考R语言官方文档

  1. dplyr包中的case_when函数:dplyr是一个流行的R包,用于数据处理和转换。其中的case_when函数可以用于根据条件进行多个选择。它的语法如下:
代码语言:txt
复制
case_when(条件1 ~ 结果1, 条件2 ~ 结果2, ...)

其中条件可以是任何逻辑表达式,结果可以是任何值。根据条件的结果,选择相应的结果值。case_when函数可以在数据处理过程中替代嵌套的if else语句,使代码更加简洁。具体使用示例可以参考dplyr包的官方文档

以上是在R中替代嵌套的if else语句的两种选项,它们可以使代码更整洁,减少括号的使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何快速地改善代码质量

例如,在User类中,可以直接命名成name、password、avatarUrl,而不需要在成员变量的命名中重复添加“user”这样一个前缀单词。这样可以让命名更短,更容易阅读理解。...我个人比较推荐使用两格缩进,这样可以节省空间,特别是在代码嵌套层次比较深的情况下。除此之外,值得强调的是,不管是用两格缩进还是四格缩进,一定不要用 tab 键缩进。...因为在不同的 IDE 下,tab 键的显示宽度不同,有的显示为四格缩进,有的显示为两格缩进。 大括号是否要另起一行? 我个人推荐将大括号放到跟上一条语句同一行的风格,这样可以节省代码行数。...移除过深的嵌套层次 移除过深的嵌套层次是为了避免代码嵌套层次过深,导致代码整洁性差、理解难度大。建议最多不超过两层嵌套,超过两层之后要思考是否可以减少嵌套。...解决方法包括去掉多余的if或else语句、使用编程语言提供的continue、break、return关键字提前退出嵌套等。 学会使用解释性变量

19510

如何让你的代码整洁漂亮?

“名称说明什么” Kendrick Lamar很好的解释道: “如果我要讲一个真实的故事,我会从我的命名开始” 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...这里有两条书写整洁函数的黄金定律: · 代码应该少 · 函数应该专注做一件事,并且做精 所以这也意味着你的函数不应该太大来嵌套其他结构。同时,函数的缩进,不应该大于一个或者两个。...该技巧可以使得代码更容易阅读理解消化。除此之外,我们也要使得函数内的语句处于同一个抽象程度。 在同一个函数中混合不同层次的抽象,会使得其令人迷惑,并且不利于管理。...没有什么比得上放置妥当的注解。另一方面,没有比无聊无用的注解更浪费空间的。同时没有比传递错误信息的注解更具有破坏力的。 简而言之,注释越多一定是个恶魔。为什么这么说?...当你在try-catch-finally语句中的 try部分执行代码的时候,就是在表明执行会在任意时刻终止,并在catch中恢复。

88180
  • 如何让你的代码整洁漂亮?

    名称说明什么 Kendrick Lamar很好的解释道: 如果我要讲一个真实的故事,我会从我的命名开始 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...这里有两条书写整洁函数的黄金定律: 代码应该少 函数应该专注做一件事,并且做精 所以这也意味着你的函数不应该太大来嵌套其他结构。同时,函数的缩进,不应该大于一个或者两个。...该技巧可以使得代码更容易阅读理解消化。除此之外,我们也要使得函数内的语句处于同一个抽象程度。 在同一个函数中混合不同层次的抽象,会使得其令人迷惑,并且不利于管理。...没有什么比得上放置妥当的注解。另一方面,没有比无聊无用的注解更浪费空间的。同时没有比传递错误信息的注解更具有破坏力的。 简而言之,注释至多是个必要的恶魔。为什么这么说?...当你在try-catch-finally语句中的 try部分执行代码的时候,就是在表明执行会在任意时刻终止,并在catch中恢复。

    79430

    如何让你的代码整洁漂亮?

    “名称说明什么” Kendrick Lamar很好的解释道: ”如果我要讲一个真实的故事,我会从我的命名开始“ 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...这里有两条书写整洁函数的黄金定律: · 代码应该少 · 函数应该专注做一件事,并且做精 所以这也意味着你的函数不应该太大来嵌套其他结构。同时,函数的缩进,不应该大于一个或者两个。...该技巧可以使得代码更容易阅读理解消化。除此之外,我们也要使得函数内的语句处于同一个抽象程度。 在同一个函数中混合不同层次的抽象,会使得其令人迷惑,并且不利于管理。...没有什么比得上放置妥当的注解。另一方面,没有比无聊无用的注解更浪费空间的。同时没有比传递错误信息的注解更具有破坏力的。 简而言之,注释至多是个必要的恶魔。为什么这么说?...当你在try-catch-finally语句中的 try部分执行代码的时候,就是在表明执行会在任意时刻终止,并在catch中恢复。

    96560

    零基础Python实战(二),20行写个剪刀石头布游戏

    没想到大家对于实战类的热情很高,已经有好几个小伙伴催更了。所以马不停蹄地写了这篇,我们继续来带大家用Python做一些简单的项目,带领大家实际练习,最终熟练掌握这门语言。...Python中的函数非常非常简单,它几乎没有限制,我们可以用函数来实现一切我们想要做的事情。...因为三元表达式的本质就是if-else的语句,只是三元表达式相比较来说更加简易,写代码的时候使用会比较顺手。...Python中的三元表达式相比于C++我个人感觉更好理解一些,虽然写起来稍微复杂了一点点,但是对新手来说还是比较友好的。...比如我们要根据某一个条件判断一个变量的值是0还是1,我们可以写成这样: param = 1 if xxx else 0 三元表达式也可以嵌套,比如两个if else嵌套在一起,但是这样会导致代码的可读性很差

    86820

    前端-5个小技巧让你写出更好的JS条件语句

    这里有五个小技巧,可以让你写出更干净、漂亮的条件语句。 1....语句来筛选无效的条件 3 层 if 语句嵌套(条件 1,2 & 3) 就我个人而言,我遵循的一个总的规则是当发现无效条件时尽早返回。...这是种很好的代码风格,尤其是在 if 语句很长的时候(试想一下,你得滚动到底部才能知道那儿还有个 else 语句,是不是有点不爽)。 如果反转一下条件,我们还可以进一步地减少嵌套层级。...这取决于你自己,对你而言,这个版本的代码(没有嵌套)是否要比之前那个版本(条件 2 有嵌套)的更好、可读性更强? 是我的话,我会选择前一个版本(条件 2 有嵌套)。...使用函数默认参数和解构 我猜你也许很熟悉以下的代码,在 JavaScript 中我们经常需要检查 null / undefined 并赋予默认值: function test(fruit, quantity

    96830

    【Web前端】创建JavaScript“条件语句”代码块做决定

    条件语句结构允许我们来描述在 JavaScript 中这样的选择,从不得不作出的选择(例如:“选择吱吱宝”)到产生的结果或这些选择(也许是“刷一个”可能会“仍然感觉少”,或者是“刷两个”可能会“感觉好像也还是少了哈哈哈哈...要测试的条件,放到括号里(通常是“这个值大于另一个值吗”或者“这个值存在吗”)。这个条件会利用比较运算符(我们会在最后的模块中讨论)进行比较,并且返回 ​​true​​ 或者 ​​false​​。...一组花括号,在里面我们有一些代码——可以是任何我们喜欢的代码,并且只会在条件语句返回 ​​true​​ 的时候运行。 关键字 ​​else​​。...} } else { // 条件1为假时执行的代码 } 嵌套的​​if...else​​​语句可以用来处理更复杂的逻辑。...switch 语句 ​​​if...else​​语句在实现条件代码方面非常有效,但也存在一些缺点。它们最适合处理选项较少且每个选项需要较多代码的场景,或是在条件较为复杂时(例如涉及多个逻辑运算符)。

    10310

    JS 条件语句的 5 条守则

    在用 JavaScript 工作时,我们经常和条件语句打交道,这里有5条让你写出更好/干净的条件语句的建议。...这样一来,代码看起来更整洁。 2.更少的嵌套,尽早 Return 让我们拓展上一个例子让它包含两个条件。...语句筛选出无效的语句 3层if嵌套语句 (条件 1, 2 & 3) 我个人遵循的规则一般是在发现无效条件时,尽早Return。...这种编码风格非常好,尤其是当你有很长的if语句的时候(想象你需要滚动到最底层才知道还有else语句,这并不酷) 我们可以通过 倒置判断条件&尽早return 进一步减少if嵌套。...问问自己,这个版本(没有嵌套)是不是比之前的(两层条件嵌套)更好,可读性更高? 但对于我,我会保留先前的版本(包含两层嵌套)。

    2.7K30

    代码规范-对抗软件复杂度

    注释的目的就是让代码更容易看懂。只要符合这个要求的内容,你就可以将它写到注释里。 比如,阐述代码的逻辑,你为什么这么做,想要达到什么样的效果等等。 3.2.2、注释是不是越多越好?...相对于类和模块,函数的粒度比较小,代码行数少,所以在应用单一职责原则的时候,没有像应用到类或者模块那样模棱两可,能多单一就多单一。 整洁的代码只做好一件事,干脆利落,直接了当,易于阅读,易于维护。...3.4.4、移除过深的嵌套层级 代码嵌套层级过深往往是因为if-else、switch-case、for循环过度嵌套导致的。我个人建议,嵌套最好不超过两层,超过两层之后就要思考一下是否可以减少嵌套。...过深的嵌套本身理解起来就比较费劲,除此之外,嵌套过深很容易因为代码多次缩进,导致嵌套内部的语句超过一行的长度而折成两行,影响代码的整洁。...针对层级嵌套过深的代码可以使用多态简化逻辑,移除不必要的if或else,也可以使用策略模式,提前return退出嵌套等。

    72840

    写好 JS 条件语句的 5 条守则

    ,这里有5条让你写出更好/干净的条件语句的建议。...这样一来,代码看起来更整洁。 2.更少的嵌套,尽早 Return 让我们拓展上一个例子让它包含两个条件。...语句筛选出无效的语句 3层if嵌套语句 (条件 1, 2 & 3) 我个人遵循的规则一般是在发现无效条件时,尽早Return。...这种编码风格非常好,尤其是当你有很长的if语句的时候(想象你需要滚动到最底层才知道还有else语句,这并不酷) 我们可以通过 倒置判断条件 & 尽早return 进一步减少if嵌套。...问问自己,这个版本(没有嵌套)是不是比之前的(两层条件嵌套)更好,可读性更高? 但对于我,我会保留先前的版本(包含两层嵌套)。

    1.8K20

    JavaScript 中写好条件语句的五个技巧

    当用JavaScript来工作的时候,我们需要处理很多的条件判断,这里有五个小技巧能帮助你写出更好/更清晰的条件语句。 1....语句筛出无效的条件语句 3层嵌套的语句(条件1,2和3) 我个人遵守的准则是发现无效的条件时,及早return。...这种编码风格很赞,尤其是当你有很长的if语句(可以想象下你需要滚动很长才知道有else语句,一点都不酷)。 (针对上面例子)我们可以通过倒置判断条件和及早return来进一步减少if嵌套。...这个技巧很有用:当我们处理很长的逻辑,并且希望能够在条件不满足时能够停下来进行处理。 而且,这样做并不难。问下自己,这个版本(没有条件嵌套)是不是比之前版本(两层嵌套)更好/可读性更高呢?...使用默认参数和解构 我猜你对下面的代码有些熟悉,在JavaScript中我们总需要检查null/undefined值和指定默认值。

    59010

    【译】JavaScript 中写好条件语句的五个技巧

    当用JavaScript来工作的时候,我们需要处理很多的条件判断,这里有五个小技巧能帮助你写出更好/更清晰的条件语句。 1....语句筛出无效的条件语句 3层嵌套的语句(条件1,2和3) 我个人遵守的准则是发现无效的条件时,及早return。...这种编码风格很赞,尤其是当你有很长的if语句(可以想象下你需要滚动很长才知道有else语句,一点都不酷)。 (针对上面例子)我们可以通过倒置判断条件和及早return来进一步减少if嵌套。...这个技巧很有用:当我们处理很长的逻辑,并且希望能够在条件不满足时能够停下来进行处理。 而且,这样做并不难。问下自己,这个版本(没有条件嵌套)是不是比之前版本(两层嵌套)更好/可读性更高呢?...使用默认参数和解构 我猜你对下面的代码有些熟悉,在JavaScript中我们总需要检查null/undefined值和指定默认值。

    1.3K20

    React 条件渲染最佳实践(7 种方法)

    JSX 中的 if else 语句 你可能知道,我们可以在 JSX 中的方括号{}中注入和混合一些 javascript 代码。但是它有一些局限性。 你不能直接向其中插入 if-else 语句。...; } })()} ); 如你所见,仅 if 语句就太冗长了。这就是为什么我不建议在 JSX 中使用 if-else 语句的原因。...三元运算符还可用于替换多个条件渲染(if-else if-else)或嵌套的条件渲染。 但是,我不建议你使用它,因为它比普通的 if-else 语句更难读。...~~ 使用三元运算符,可以缩短 if-else 语句的代码量,并为 JSX 中的条件渲染提供更好的选择。 但是,你知道有比三元运算符更简单的方法吗? &&运算符可用于替换此类 if 语句。...对于 JSX 标记中的 switch-case语句,它是更好的选择。 如你所知,在第 5 种方法中,你应该将switch-case语句包装在 JSX 的 IIFE 中。使用枚举对象,你不需要这样做。

    5.8K20

    C语言常用的知识没多少之简单的程序

    其中的内容都可作为代码注释内容。但需要注意的是多行注释的标志是不能嵌套的,即多行注释标志符中不能有任何多行注释的结束标志符,开始符号可以被嵌套在内,这样做是为了防止标志符的混乱。...接下来有比较熟悉的标志—整型(int)。改行以及后面的大括号({ })、return 0;语句都是函数的知识,这在以后讲解。...没有该标志会造成C语言代码的混乱,这样也是很符合现实中的标点符号—使正篇文章看起来整洁。C语言是由很多条的语句(代码)组成的,每条语句都有它存在的功能,每个功能占一行的空间,这样的代码比较整洁。...这样做也是为了让代码看起来整洁。一眼便能看出什么是语句块,什么是函数的开头部分(大括号的前后部分分别为函数的开始和结束标志)。一般想分隔清楚的话用两个空格分开,或者一个Tab键(在键盘的左上角)。...这是变量的特性。 如果有问题的可以在公众号回复栏中写出问题描述发给我,我看到的话会进行相应的回复。如果发现文章有问题,也欢迎在公众号回复栏中提问,我会查阅资料进行确认并做出修改和回复。

    83040

    使用 JavaScript 编写更好的条件语句

    条件调用可能初学很简单,但是还有比写一对对if/else更多的东西。这里有些编写更好更清晰的条件代码的有用提示。...现在,如果我们想要检查任何其他动物,我们只需要添加一个新的数组项。 我们也能在这个函数作用域外部使用这个动物数组变量来在代码中的其他任意地方重用它。...这是一个编写更清晰、易理解和维护的代码的方法,不是吗? 2. 提前退出 / 提前返回 这是一个精简你的代码的非常酷的技巧。我记得当我开始专业工作时,我在第一天学习使用提前退出来编写条件。...如果不使用lint工具,找出闭合花括号在哪都会浪费很多时间。? 想象如果代码有更复杂的逻辑会怎么样?大量的if..else语句。...语句过滤非法条件 3 级嵌套if语句 (条件 1, 2, & 3) 一个普遍遵循的规则是:在非法条件匹配时提前退出。

    1.6K30

    如何避免自己写的代码成为别人眼中的一坨屎!

    篇幅有限,本文将总结性给出一些实践建议,后续会有文章来给出一些代码整洁之道的事例。...100行那么长,20行封顶最好: if else while等控制语句其中代码块应该只有一行,也就是一个函数调用语句; 函数的锁进层次不应该多于两层; 一个函数只做一件事,一个函数不应该能抽象出另外一个函数...对象暴露行为,隐藏数据; 不要使用“尤达表示法” 如 if(null == obj),现代编译器对if(obj = null)这样的代码会给出警告; 一般情况使用if else,简单语句使用三目运算符...; 整洁的代码只提供一种而非多种做一件事的途径,他只有尽量少的依赖。...相信每一个优秀的工程师都有一颗追求卓越代码的心,在代码整洁工程实践上你有哪些好的建议?数百人协作开发的代码如何保证代码整洁一致性?欢迎大家来讨论。

    53620

    【翻译】Kotlin致简代码之路

    Kotlin 在这里能派上用场是因为它有比 Java 更好的方式支持函数式编程: 表达式 不可变性 函数类型 简洁的 Lambda 表达式 Kotlin 丰富的集合 API 当然,值得注意的是, Kotlin...表达式 流程控制结构作为表达式 在 Kotlin 中,流程控制结构体是表达式而不是语句。我们刚才已经看到 when 表达式实践了。...其实 if-else 和 try-catch 在 Kotlin 中也同样是表达式。...理由如下: 提升可读性,得益于更少的模板和语法噪点 提升安全性能 Koltin 鼓励更好的设计方式 但是仍然有两件事我们需要牢记于心: 整洁代码和好的设计方式在 Kotlin 中并不是自动形成的。...我不认为这很差,特别是在遇到额外的少量的语法时候。 “让汽车更安全并不意味着你可以粗心驾驶。”

    1.4K30

    【JS】303- 编写更好的 JavaScript 条件式和匹配条件的技巧

    我认为我们应当尽可能地遵循这些原则。 正如我在另一篇文章 JavaScript 整洁代码的最佳实践里提到的,你写的代码不单单是给机器看的,还是给“未来的自己”以及“其他人”看的。...3、匹配所有条件,使用 Array.every 或者 Array.find 在本例中,我们想要检查每个汽车模型是否都是传入函数的那一个。...我这么说也就意味着,我们应该意识到它在某些情况下可能会引起条件式嵌套地狱。如果不受控制,多个分支和 if…else 嵌套将会让我们感到很痛苦。...很多人觉得 if…else 语句更容易理解,并且有助于他们更为轻松地遵循程序流程。 6、使用索引或者映射,而不是 switch 语句 假设我们想要基于给定的国家获取汽车模型。...许多库,例如 lodash,有自己的函数作为替代方案。不过这不是我们想要的,我们想要的是在原生 js 中也能做同样的事。

    1.4K10
    领券