n<-NULL
acr<-NULL
while((is.numeric(n)==F) & (acr<0 ¦acr>1)){
print("enter a positive integer and the average cancellation rate you want")
try(n<-scan(what=integer(),nmax=1), silent=TRUE);
try(acr<-scan(what=double(),nmax=1), silent=TRUE)
}
我希望我的程序的用戶輸入,我存儲在「N」,我保持一個正整數,第二 條目「ACR」是其概率介於0和1之間。 (我不希望它是0或1,儘管它可能是根據概率論)。 所以我希望用戶繼續進行輸入,直到他們能夠輸入「n」的正整數和「acr」的0到1之間的概率值(與AND,OR運算符一起使用)使用while循環使用邏輯運算符(AND和OR)
但是,我遇到了while語句/循環的問題。我嘗試了所有其他的可能性,例如下面的可能性,但它仍然不起作用。
while(is.numeric(n)==F & acr<0 ¦acr>1)
AGAIN:問題2 沒有與what=double()
也在scan
功能的問題,我想。我知道,例如,0.5是其他編程語言中的雙數據類型,但是 我無法在R中找到它(我不知道它在R中稱爲什麼)。 R中的integer()
和double()
之間的區別是什麼? (我不熟悉雙倍)
我會高度讚賞任何人可以來我的援助。
非常感謝大家。
Isaac Owusu
@Owusu艾薩克:嘗試在(is.numeric(N)== F&(ACR <0 ¦acr> 1))。您的原始代碼首先會評估is.numeric(n)== F&acr <0而不是(我相信您的意圖是)is.numeric(n)== F&(acr <0 ¦acr> 1)。 – Jubbles 2011-05-10 14:25:49