r - 不使用 if else 写入表达式
问题描述
有没有办法在两种情况下都不使用 if-else 条件来编写综合表达式。
谢谢
n
可以取值 - 0 或 1
if (n == 2)
{
output <- c(0.5, 0.5)
} else
{
output <- c(1, 0)
}
- 根据值
n
- 0 或 1生成带有 x 和 y 的 tibble
library(tidyverse)
N = 1000
if (n == 1)
{
x <- runif(N/n, min = 0, max = 5)
y <- runif(N/n, min = 0, max = 5)
tbl <- tibble(x, y)
} else
{
x1 <- runif(N/n, min = 0, max = 5)
y1 <- runif(N/n, min = 5, max = 10)
x2 <- runif(N/n, min = 5, max = 10)
y2 <- runif(N/n, min = 0, max = 5)
tbl <- tibble(x = c(x1, x2),
y = c(y1, y2))
}
解决方案
如果您想避免使用if...else ...
,也许下面的代码将是一个选项:
- 情况1
list(c(1, 0), c(0.5, 0.5))[[(n == 2) + 1]]
- 案例2
list(
{
x1 <- runif(N / n, min = 0, max = 5)
y1 <- runif(N / n, min = 5, max = 10)
x2 <- runif(N / n, min = 5, max = 10)
y2 <- runif(N / n, min = 0, max = 5)
tbl <- tibble(
x = c(x1, x2),
y = c(y1, y2)
)
},
{
x <- runif(N / n, min = 0, max = 5)
y <- runif(N / n, min = 0, max = 5)
tbl <- tibble(x, y)
}
)[[(n == 1) + 1]]
推荐阅读
- python - NotImplementedError:不支持板
- java - 在tomcat服务器中运行war文件时出错
- react-native - 如何将 iOS 本地 URI 转换为路径?
- typescript - Javascript从谓词中提取主题属性和值以形成对象
- c# - 为什么将方法添加到列表中
修改列表的所有元素? - python - 使用 .controller 在 tkinter 中的帧之间调用数据
- javascript - 为什么 __proto__ 是一样的
- javascript - 使用 Formik 和 Jest / Enzyme 对文本字段进行单元测试
- ruby - 在 Ruby 中,为什么在 each 语句中使用 puts 函数时三元运算符不起作用?
- javascript - 动态创建数组并在单个循环的内容中将多个元素推入其中