Re: [R] iterative loop with user input?

From: Christopher Marcum <cmarcum_at_uci.edu>
Date: Fri, 04 Apr 2008 11:01:39 -0700 (PDT)

Hi All,

Thank you for your solutions. They all seem reasonable and I will be testing these out later this evening. I'm replying to the list because I think these solutions will come in handy to those using R as a programming language.

-Chris Marcum
Sociology/Cal(it)^2
University of California - Irvine

Phil Spector wrote:

>In your original solution, I believe you were repeatedly
>reading in the file that had the variable names. I'd
>do something like this:
>
>prompts = readLines(filename)
>result = sapply(prompts,function(x)readline(paste(x,'? ',sep='')))
>
>result will be a vector with the names of the variables from
>the file and their character values.
>
> - Phil Spector
> Statistical Computing Facility
> Department of Statistics
> UC Berkeley
> spector_at_stat.berkeley.edu

jim holtman wrote:
> Is this what you want to do:
>
>> x.f <- function(){
> + x <- list()
> + for (i in 1:10){
> + z <- readline(paste("Parameter ", i, ": ", sep=''))
> + # just store the input in a list with the same key
> + x[[z]] <- z
> + }
> + x
> + }
>> x.f()
> Parameter 1: 12
> Parameter 2: 2
> Parameter 3: asdf
> Parameter 4: 33
> Parameter 5: scs
> Parameter 6: sdaf2
> Parameter 7: 234
> Parameter 8: gfd
> Parameter 9: 123
> Parameter 10: aa
> $`12`
> [1] "12"
>
> $`2`
> [1] "2"
>
> $asdf
> [1] "asdf"
>
>
>
> On Thu, Apr 3, 2008 at 1:18 PM, Christopher Marcum <cmarcum_at_uci.edu>
> wrote:
>> Hello R-Users,
>>
>> I would like to use an iterative loop to collect user input from within
>> a
>> function. I'm sure that this would be some combination of "for","break",
>> and "next" but have not been able to get the syntax down.
>>
>> I would like to print some text to the screen at each step in the loop,
>> ask the user for input which is saved in an object, and then advance the
>> loop.
>>
>> Here is an example:
>>
>> #anchor is a file with unique ids
>> anchor<-rep(1:30)
>> anchor<-paste(anchor,"uid",sep="")
>>
>> #codelist is where I would like to store user input
>> codelist<-NULL
>>
>> for(i in 1:30) {
>> #tell the user which ID is being coded
>> print(paste("You are coding unique ID",anchor[i],sep=": "))
>> #Read a line from a text file:
>> print(readLines(file="file_with_30_lines.txt",warn=F)[i])
>> #Ask the user for input
>> codelist[i]<-readline(paste("Select one of the following: \n \t please
>> enter 1, 2, or 3: \n Enter Your Response HERE: ",sep=""))
>> }
>>
>> Ideally, loop should work from inside a function.
>>
>> Any tips? Thanks in advance for your time and patience.
>>
>> Best,
>> Chris Marcum
>> Sociology/Cal(it)^2
>> University of California-Irvine
>>
>> ______________________________________________
>> R-help_at_r-project.org 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.
>>
>
>
>
> --
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
>
> What is the problem you are trying to solve?
>
>



R-help_at_r-project.org 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. Received on Fri 04 Apr 2008 - 18:15:23 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 04 Apr 2008 - 19:30:27 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive