Embed an R process in a VBA macro

2019-01-19 12:25发布

问题:

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

回答1:

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



回答2:

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..



回答3:

I'm too not familiarized with R. But I found these 2 links that can be useful:

Windows Component Services Integrating R and Excel on the COM Layer

and,

High-Level Interface Between R and Excel

[]'s



标签: vba r embed