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