[R] Looping and Pasting

Erik Iverson iverson at biostat.wisc.edu
Fri Feb 22 21:16:21 CET 2008


See if the following helps you understand what you want.

This won't work:

get("m.1$medoids")

But you can do

get("m.1")$medoids

lst1 <- list(a = 10, b = 20, c = 30) ##create a list
get("lst1") ## gets whole objec
get("lst1$a")  ## does not work
get("lst1")$a  ## works
get(paste("lst", 1, sep = ""))$a ## same as above with paste

As for alternatives, it could be suggested that you store all your mi's 
in a list themselves, and then just use the lapply function to do 
whatever processing you want. You then would not have to mess with 
'get', 'paste', and for loops.

Best,
Erik Iverson


Mark Orr wrote:
> Hello R-community:  Much of the time I want to use loops to look at graphs,
> etc.  For example,
> 
> I have 25 plots, for which the names are m.1$medoids, m.2$medoids, ...,
> m.25$medoids.
> I want to index the object number (1:25) as below (just to show concept).
> 
> for (i in 1:25){
> plot(m.i$medoids)
> }
> 
> I've tried the following, with negative results
> 
> for ...
> plot(paste("m.",i,"$medoids",sep=""))
> 
> for ..
> plot(get(paste("m.",i,"$medoids",sep="")))
> 
> for...
> plot(eval(paste("m.",i,"$medoids",sep="")))
> 
> 
> I'm not very fluent with R, but would like to have the general capacity to
> run loops in this fashion.  help and archives did not help me, although I'm
> sure I've either missed something or did not properly understand the
> internals of R.
> 
> Any help or alternatives are much welcome; however, note, that alternatives
> should be general, because I desire this functionality for other tasks.
> 
> Thanks in advance,
> 
> Mark Orr
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.



More information about the R-help mailing list