29 lines
		
	
	
		
			806 B
		
	
	
	
		
			Java
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			806 B
		
	
	
	
		
			Java
		
	
	
	
	
	
| 
								 | 
							
								package com.baeldung.r;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import org.rosuda.REngine.REXPMismatchException;
							 | 
						||
| 
								 | 
							
								import org.rosuda.REngine.REngineException;
							 | 
						||
| 
								 | 
							
								import org.rosuda.REngine.Rserve.RConnection;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Rserve showcase.
							 | 
						||
| 
								 | 
							
								 * 
							 | 
						||
| 
								 | 
							
								 * @author Donato Rimenti
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								public class RserveMean {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Connects to the Rserve istance listening on 127.0.0.1:6311 and invokes the
							 | 
						||
| 
								 | 
							
									 * customMean R function passing the given values as arguments.
							 | 
						||
| 
								 | 
							
									 * 
							 | 
						||
| 
								 | 
							
									 * @param values the input to the mean script
							 | 
						||
| 
								 | 
							
									 * @return the result of the R script
							 | 
						||
| 
								 | 
							
									 * @throws REngineException      if any error occurs
							 | 
						||
| 
								 | 
							
									 * @throws REXPMismatchException if any error occurs
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public double mean(int[] values) throws REngineException, REXPMismatchException {
							 | 
						||
| 
								 | 
							
										RConnection c = new RConnection();
							 | 
						||
| 
								 | 
							
										c.assign("input", values);
							 | 
						||
| 
								 | 
							
										return c.eval("customMean(input)").asDouble();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |