在 R 中,ifelse()
函数是标准 if...else
语句的简写向量化替代方案。
R 中的大多数函数都接受向量作为输入并返回向量化输出。同样,传统 if...else
块的向量等效项是 ifelse()
函数。
ifelse()
函数的语法是
ifelse(test_expression, x, y)
如果 test_expression
的输出为 TRUE
,则输出向量的元素为 x。如果输出为 FALSE
,则输出向量中的元素将为 y。
示例 1:用于奇数/偶数的 ifelse() 函数
# input vector
x <- c(12, 9, 23, 14, 20, 1, 5)
# ifelse() function to determine odd/even numbers
ifelse(x %% 2 == 0, "EVEN", "ODD")
输出
[1] "EVEN" "ODD" "ODD" "EVEN" "EVEN" "ODD" "ODD"
在这个程序中,我们使用 R 中的 c()
函数定义了一个向量 x。该向量包含一些奇数和偶数。
然后我们使用了 ifelse()
函数,它将向量 x 作为输入。然后对 x 执行逻辑运算以确定元素是奇数还是偶数。
对于向量中的每个元素,如果 test_expression
的评估结果为 TRUE
,则对应的输出元素为 "EVEN
",否则为 "ODD
"。
示例 2:用于及格/不及格的 ifelse() 函数
# input vector of marks
marks <- c(63, 58, 12, 99, 49, 39, 41, 2)
# ifelse() function to determine pass/fail
ifelse(marks < 40, "FAIL", "PASS")
输出
[1] "PASS" "PASS" "FAIL" "PASS" "PASS" "FAIL" "PASS" "FAIL"
此程序根据条件确定学生是否及格或不及格。在这里,如果向量中的分数小于 40,则该学生被认为不及格。