>我正在尝试在R中创建一个函数,如果整数大于100,则输出"pass",如果小于100则输出"fail",如果等于100,则输出"中性"。对于字符变量/文本,代码应显示"无效"。
这是我到目前为止的代码:
compare <- function(x) {
if (x>100) {
result = "pass"
}
else if (x<100) {
result = "fail"
}
else if (x==100) {
result = "neutral"
}
else if (is.character(x) == TRUE) {
result = "invalid"
}
print(result)
}
compare(10)
compare(100)
compare(120)
compare("text")
我希望比较(10(产生"失败",比较(100(产生"中性",比较(120(产生"通过",比较("文本"(产生"无效"。但是,所有整数都有效,compare("text"(不断产生"pass"而不是"invalid"。比较(as.character("text"((也只产生"pass"。
要创建条件语句,您需要==
而不是=
。
compare <- function(x) {
if (!is.numeric(x)) {
result = "invalid"
} else if (x>100) {
result = "pass"
} else if (x<100) {
result = "fail"
} else if (x==100) {
result = "neutral"
}
print(result)
}
这个功能对我有用。以下是输出测试。
> compare(10)
[1] "fail"
> compare(100)
[1] "neutral"
> compare(120)
[1] "pass"
> compare("hello")
[1] "invalid"