[R] Help with IF operator
Petr Savicky
savicky at praha1.ff.cuni.cz
Fri Jan 7 09:37:11 CET 2011
On Thu, Jan 06, 2011 at 12:21:33PM -0800, ADias wrote:
>
> Hi,
>
> I am with a problem on how to do a comparison of values. My script is as
> follows:
>
> repeat{
> cat("How many teams to use? (to end write 0) ")
> nro<-scan(n=1)
> if(nro==0)break
> cat("write the", nro, "teams names \n")
> teams<-readLines(n=nro)
> if (teams[1]==teams[2)next
> else print(teams)
> }
>
> On this example I only compare teams 1 name with teams 2 name, and if they
> are the same the scrip starts again. If I had 10 teams how could I make it
> compare the "nro" number of teams names in order to check if the same name
> has been written more then once? The idea is, if the same name is written
> more then once it should give an error and start the scrip again by asking
> the teams names again.
>
> Two more things: With the next function the script stats from top, I mean
> starts by asking the number of teams to use. Can I make it that it goes
> directly to asking teams names?
Consider also using readline(), which reads a single line, and
%in% operator to compare the new name to the previous ones
immediately.
nro <- as.numeric(readline("no of teams "))
teams <- rep(NA, times=nro)
for (i in seq(length=nro)) {
repeat {
current <- readline(paste("team", i, ""))
if (current %in% teams) {
cat("error - repeated name\n")
} else {
break
}
}
teams[i] <- current
}
Petr Savicky.
More information about the R-help
mailing list