【发布时间】:2021-02-01 14:30:12
【问题描述】:
我正在尝试返回给定此函数的值列表:
Pass_or_fail <- function(y){
x = round(runif(y, 0, 100), 1)
if(x>50){
list(print("Passed"))
}else if(x < 50){
list(print("Failed"))
}
}
当我将一个值传递给y 例如20 时,这应该返回一个Passed 或Failed 字符的列表。但是,上面的函数只返回一个向量。我希望它返回相对于上面提供的条件的 20 个值,主要是列表格式。
我正在考虑创建一个类似的变量:
t_list <- list(1:20)
#then
Map(Pass_or_fail(20), t_list)
示例输出(虽然不准确):
"Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed" "Passed" "Failed"
我似乎还无法弄清楚。
【问题讨论】:
-
我们需要
ifelse而不是if() else。当你说“列表”时,我认为你的意思是一个向量。 -
我用这个试过了,在输入上面的函数时似乎可以工作:
replicate(10, Pass_or_fail(1)),虽然我更喜欢更干净的输出。 -
x == 50时会发生什么?
标签: r function if-statement control-flow