Hello, 

I have been trying for a few days to do kmeans on a matrix of data which I
populate from java. 

Here's my code: 

String[] Rargs = {"--vanilla"};
            Rengine re = new Rengine(Rargs, false, null);
            System.out.println("Rengine created, waiting for R");
            // the engine creates R is a new thread, so we should wait until 
it's
            // ready
            if (!re.waitForR()) {
              System.out.println("Cannot load R");
              return null;
            }   
                re.eval ("rmatrix <- matrix(data = NA, nrow = "+rows+", ncol
="+(columns-1)+", byrow = FALSE)");//,dimnames = )");
                REXP rp= re.eval(hDr);
                //loop through the matrix and give the upgma_matrix the correct 
values
                for (int i = 0; i < rows-1; i++)
                {
                        re.eval ("i<- " +i);
                       for (int j = 1; j < columns; j++)
                        {
                        re.eval ("j<- " +j);
                        //R matrices start at index 1 (java at 0), so add 1 to  
current
position
                        re.eval ("ii <- i+1");
                        re.eval ("jj <- j");
                       //add values for the lower triangle..
                        re.eval ("rmatrix [ii,jj] <- "+ data[i][j].toString());
                        System.out.print(data[i][j].toString()+",");
                         }
                       System.out.println();
                 }
        
                REXP rt = re.eval("r_matrix");
                String bindString = "DATAMATRIX <- cbind(rmatrix[,1],";
                for (int k = 0; k<columns-2;k++ ){
                        if(k<columns-3){
                        bindString = bindString+"rmatrix[,"+(k+2)+"],";
                        }else{
                                bindString = bindString+"rmatrix[,"+(k+2)+"])";
                        }
                }
                
                rt = re.eval(bindString);
                            //cluster using kmeans
                rt = re.eval("DATAMATRIX;");
                rt = re.eval("CLST<-DATAMATRIX");
                rt = re.eval("CLST <- kmeans(CLST,3)",true);

but when I check on rt, it comes back as null. 

Any suggestions? 

Jose

--
View this message in context: 
http://r.789695.n4.nabble.com/kmeans-clustering-java-tp3427159p3427159.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.

Reply via email to