if 语句在每个分支上返回不同的变量,如何仅使用一个 <- 运算符分配给该变量?

Posted

技术标签:

【中文标题】if 语句在每个分支上返回不同的变量,如何仅使用一个 <- 运算符分配给该变量?【英文标题】:An if statement returns a different variable on each branch, how can I assign to that variable using only one <- operator? 【发布时间】:2021-11-18 19:11:17 【问题描述】:

考虑

if(sample(2, 1) == 1) a <- 5 else b <- 5

这是重复的。有什么办法不用写&lt;- 5两次?

【问题讨论】:

【参考方案1】:

你可以使用assign -

assign(if(sample(2, 1) == 1) 'a' else 'b', 5) 

【讨论】:

【参考方案2】:

我们可以使用list2env

list2env(setNames(list(5),  c('a', 'b')[sample(2, 1)]), .GlobalEnv)

-检查

> a
[1] 5

【讨论】:

我必须承认,直到现在我才知道list2env 有多个参数。

以上是关于if 语句在每个分支上返回不同的变量,如何仅使用一个 <- 运算符分配给该变量?的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本的条件测试和if条件语句使用

一个 IF 语句,用于检查并执行 Windows 批处理文件中每个设置变量的命令

如何通过比较同一行上的三个变量来返回布尔值?

shell编程之case分支语句

Shell 编程规范与变量

浅谈Shell脚本中for循环while循环及case分支语句