[R] getting a variable from an object named using paste
Uwe Ligges
ligges at statistik.uni-dortmund.de
Sat Jul 9 14:30:45 CEST 2005
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
>
>
>
More information about the R-help
mailing list