Quelle est la bonne façon de demander la saisie de l'utilisateur dans un programme R?

Mon programme ci-dessous(qui est en deux parties) fonctionne si je lance séparément – qui est, si je colle la première partie dans le R de la Console, exécutez-le, puis collez la deuxième et l'exécuter. Cependant, ce n'est pas la façon dont je le veux. Je veux courir à l'ensemble du programme à la fois. Si je fais qu'il affiche l'erreur suivante dans ma console :

1: 
Read 0 items
1: 
Read 0 items
Error in while ((n <= 0) | (acr <= 0) | (acr >= 1)) { : 
  argument is of length zero

J'ai essayé d'identifier le problème, mais je n'ai pas pu trouver la cause. Je serais plus qu'heureux, si quelqu'un pouvait venir à mon secours.

#**FIRST PART OF THE PROGRAM**

n <- -2
acr <- -2
while((n<=0) | (acr<=0) | (acr>=1)) {
   print("enter a  positive integer and the average cancellation rate between 0 and 1  
                you want")
   try(n <- scan(what=integer(), nmax=1), silent=TRUE)
   try(acr <- scan(what=double(), nmax=1), silent=TRUE)
}


#**SECOND PART OF THE PROGRAM**

bygrace <- read.table("C:\\MyRfolder\\bygrace.txt", header=FALSE)
r <- nrow(bygrace)
c <- ncol(bygrace)
copybygrace <- array(bygrace, dim=c(r, c))
copybygrace <- bygrace[-((n+1):r), ]
write.table(copybygrace,file="C:\\MyRfolder\\copybygrace.txt", sep="\t")
copybygrace <- read.table("C:\\MyRfolder\\copybygrace.txt", header=TRUE)
  • J'ai édité votre question afin de clarifier le problème. S'il vous plaît, essayez de donner des renseignements complets dans votre question sur les erreurs que vous voyez. Ainsi, vous obtenez une réponse plus rapide.
InformationsquelleAutor Son | 2011-05-12