[R] Readline

Antje
Mon, 18 Jun 2007 11:14:02 -0000

Hello,

I also have problems to get to run the following lines. If I run the
block instead of every single line, it simply does not wait for the input.
Can anybody help me?

------------------------
pos_name <- readline("Please type: ")

r <- substr(pos_name, 1,1)
c <- substr(pos_name, 2,nchar(pos_name))

------------------------

Thank you!
Antje


Peter Dalgaard schrieb:
 > > Forest Floor wrote:
 >> >> Hi,
 >> >>
 >> >> I've seen various posts on this question, but still
can't get the
code
 >> >> right.
 >> >>
 >> >> If I run the following code one line at a time, it works
fine.
If I run
 >> >> it together as a block, however, it doesn't wait for the
input
and gives


 >> >> an error.
 >> >>
 >> >> There must be a way to have are pause/wait for an answer, but
I
can't
 >> >> seem to find it.  Thanks!  J
 >> >>
 >> >> Code:
 >> >>
 >> >> choosefunction <- function(){readline("1. linear, 2.
linear with
lag, 3.
 >> >> nonlinear ")}
 >> >> ans <- as.integer(choosefunction())
 >> >> if (ans==1){K2=x1}
 >> >> if (ans==2){K2=x2 }
 >> >> if (ans==3){K2=x3 }
 >> >> ans
 >> >>
 >> >> Error text:
 >> >>  > ans <- as.integer(choosefunction())
 >> >> 1. linear, 2. linear with lag, 3. nonlinear if (ans==1)
{K2=x1}]}
 >> >> Warning message:
 >> >> NAs introduced by coercion
 >> >>  > if (ans==2){K2=x2) }
 >> >> Error in if (ans == 2) { : missing value where TRUE/FALSE
needed
 >> >>  > if (ans==3){K2=x3}
 >> >> Error in if (ans == 3) { : missing value where TRUE/FALSE
needed
 >> >>  > ans
 >> >> [1] NA
 >> >>
 > > As you may have realized already, the issue is that choosefunction()
 > > takes the next command as its input. Since "if
(ans==1){K2=x1}"
isn't an
 > > integer "ans" becomes NA, and it just goes downhill from
there.
 > >
 > > An extra set of braces may help
 > >
 >> >> choosefunction <- function(){readline("1. linear, 2.
linear with
lag, 3.
 > > + nonlinear ")}
 >> >> {ans <- as.integer(choosefunction())
 > > + if (ans==1){K2=x1}
 > > + if (ans==2){K2=x2 }
 > > + if (ans==3){K2=x3 }
 > > + ans}
 > > 1. linear, 2. linear with lag, 3.
 > > nonlinear 3
 > > Error: object "x3" not found
 > >
 > > It still doesn't quite work, but the reason(s) for that should be
plain
 > > to see.
 > >

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.