[R] getting a variable from an object named using paste

Constantinos Antoniou costas at mit.edu
Sat Jul 9 16:44:36 CEST 2005

Indeed. Thanks and sorry,


PS. also, sorry about sending the original post twice... I did not  
want to pollute the list any more with an apology then...

On 09 Î™Î¿Ï…Î» 2005, at 3:30 ÎœÎœ, Uwe Ligges wrote:

> Constantinos Antoniou wrote:
>> Hello,
>> The subject could be articulated better ;(, but I am stuck...
>> In any case, my problem is the following: I am trying to use knn,  
>> and  it requires a classification. So I am using cmeans for this.  
>> What I  want to do is add the classification as a new column in my  
>> data.frame  (to be used for knn). Now, the trick is that I would  
>> like to name the  output of the cmeans classification based on the  
>> number of clusters  (e.g. cmeans30 for 30 clusters). To do this, I  
>> do the following:
>> [The file for this example can be downloaded from:
>> http://mit.edu/costas/www/station-1-120103.txt   ]
>> library(e1071)
>> lala <- read.csv("station-1-120103.txt",header=F)
>> ll <- cbind(lala$V25,lala$V22)
>> num.of.clust=50
>> assign(paste("cmeans",num.of.clust,sep=""),cmeans(ll,num.of.clust))
>> and sure enough if I type cmeans50 I get the output of this cmeans  
>> run.
>> This also works, naturally:
>> llc<-cbind(ll,cmeans50$cluster)
>> [and I now get three columns, where the third column is the  
>> cluster ID.]
>> However, when I do what I really want (i.e. not call cmeans50   
>> explicitly, but through the name that I constructed  
>> programmatically):
>> llc <- cbind(ll,(paste("cmeans",num.of.clust,sep=""))$cluster)
> This is a FAQ: use get()
> Uwe Ligges
>> I only get two columns (the last term has no effect).
>> Any ideas as to what I am doing wrong?
>> Thanks a lot!
>> Costas

Constantinos Antoniou, Ph.D.
Massachusetts Institute of Technology
Intelligent Transportation Systems Program
77 Massachusetts Ave., Rm. 1-249, Cambridge, MA 02139

More information about the R-help mailing list