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
这是重复的。有什么办法不用写<- 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 语句在每个分支上返回不同的变量,如何仅使用一个 <- 运算符分配给该变量?的主要内容,如果未能解决你的问题,请参考以下文章