在這段代碼:爲什麼這個if/else錯誤出現在腳本中而不是在控制檯中?
q7 <- function (x) {
if (is.numeric (x) == FALSE) {stop ("Input is non-numeric.")}
if (all (x > 0) == FALSE) {stop ("Input has negative values.")}
sum <- 0
while (sum <= 100) {
if (x[1] > 50) {next}
else if (x[1] %% 2 == 0) {sum <- sum + (x[1]/2)}
else {sum <- sum + x[1]}
x <- x [x[2]:length (x)]
}
}
例如用作q7 (c(10,20,30,40,50,60,70,80,90,100))
,我得到這個錯誤:
Error in if (x[1] > 50) { : missing value where TRUE/FALSE needed
我認爲這裏的條件簡單得不能再簡單,我必須失去了一些[R啓發式,因爲顯然在控制檯;
> x <- c(10,20,30,40,50,60,70,80,90,100)
> x[1] > 50
[1] FALSE
那麼簡單。
這是怎麼回事?
我想在每個迭代中省略'x'中的第一個值,是否有辦法不會搞砸一切? –
當然,這避開了我。謝謝! –