r语言 - if 中的错误 (num < 0) { : 需要 TRUE/FALSE 的缺失值


y <- as.integer(readline(prompt ="Enter a number: "))
factorial = 1
if (y< 0){
print("Error")
} else if (y== 0) 
{
print("1")
} else
{ 
for(i in 1:y)  {
factorial = factorial * i
}
return(factorial)
}

想知道为什么这会给:

if (y<0( { 中的错误:需要真/假的缺失值

是第一行的数据类型NA_integer吗?

有三种可能的方法可以将值传递给if语句。

y <- 1
if (y > 0) print("more")

这个按预期工作。

y <- 1:3
if (y > 0) print("ignores all but 1st element")

正如警告消息将告诉您的那样,仅使用第一个元素来评估它。您可以使用anyall来正确执行此操作。

y <- NA
if (y > 0) print("your error")

这种情况实际上给了你错误。我敢打赌y在某种程度上NA.如果您需要更多帮助,您可能需要提供一个可重现的示例(包含数据和整个 shebang(。另请注意,它有助于直观地构建代码以提高可读性。

最新更新