[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,

Costas

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