Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embed an R process in a VBA macro

Tags:

r

vba

embed

the title exactly -- is there a way to call an r process from an excel macro?

like image 662
Thomas Avatar asked Sep 16 '10 20:09

Thomas


People also ask

How do I run an R code in VBA?

Start with the default template and rename it as needed, placing it in an "r" subfolder of the folder where your Excel file is located. Copy excelhelper. r to the "r" folder created in step 1. Write the piece of code in VBA what will call your script first to get some data in the tmp folder before coding your R script.

Can R run VBA?

This tutorial describes how to run Visual Basic (VBA) script in R. Most of the times, we need to integrate R with Excel to make formating changes in excel workbook. With VBA, we can do a lot of things such as creating pivot table, applying functions, reshaping data, creating charts etc.


2 Answers

I am unfamiliar with r process, but this link appears to be valid for your question.

http://www.unt.edu/rss/class/splus/UsingRWithinExcel.pdf

RExcel - Using R from within Excel

Overview

The Excel addin RExcel.xla allows to use R from within Excel. The package additionally contains some Excel workbooks demonstrating different techniques for using R in Excel. There are two types of servers, forground and background. The background server ist totally hidden from the user, all interaction with R has to be done in Excel. The foreground server allows direct access to the R GUI command line while working in Excel. The backgound server is installed with the R(D)COM server, the background server depends on the {R}-package rcom, which has to be installed >from CRAN.

Usage

There are at least three different ways of using R from within Excel Scratchpad mode Writing R Code directly in an Excel worksheet and transferring scalar, vector, and matrix variables between R and Excel

Macro mode

Writing macros using VBA and the macros supplied by RExcel.xla, attaching the macros to menu items or toolbar items

Worksheet functions

R can be called directly in functions in worksheet cells

Scratchpad Mode

The RExcel menu contains the following items:

R Start

Initiates a connection to R If necessary starts an R process to be accessed >from Excel For the details of executing code at startup see section Startup

Close R

When this process is running, R Start changes to Close R Run Code Selecting a range (only one column wide) in Excel containing valid R code and then choosing this menu item executes the selected code

Get

Gets the value of an R variable into the active Excel cell or range Possible values are scalars and matrices of numbers or strings, or dataframes.

Put

Puts the values of the selected Excel range into an R variable. Possible values are scalars and matrices of numbers or strings, or dataframes. If a dataframe is to be put, the first row of the Excel range must contain the variable names for the dataframe. Put for dataframes only transfers data in visible rows and columns, hidden rows and columns will not be transferred.

Copy Code

Puts the content of the selected range on the Windows clipboard, assuming that it is R code, and wraps the code in VBA procedure calls to make it ready for inclusion in VBA macros

like image 89
Michael Eakins Avatar answered Sep 18 '22 06:09

Michael Eakins


RExcel, a free add-in for Excel that can be downloaded from the R distribution network. RExcel seamlessly integrates the entire set of R's statistical and graphical methods into Excel.

The book R Through Excel offers a good entry for those just beginning with R through the familiar Microsoft Excel..

like image 44
George Dontas Avatar answered Sep 18 '22 06:09

George Dontas