我正在尝试在R中创建一个函数,如果整数大于100,则输出“通过”;如果小于100,则输出“失败”;如果等于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")
我期望compare(10)产生“失败”,compare(100)产生“中性”,compare(120)产生“通过”,而compare(“ text”)产生“无效”。所有整数均有效,但是compare(“ text”)会连续生成“ pass”而不是“ invalid”。 Compare(as.character(“ text”)))也只会产生“ pass”。
答案 0 :(得分:0)
要创建条件语句,您需要==
而不是=
。
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"