Macro Language examples
The following examples show how to implement various R applications within Macro Language code.
Description
The <code>
tag now supports language_="r"
, allowing
1010data to interface with this popular statistics package from within your macro code. See
<code>
in the 1010data
Reference Manual for more information.
When using the <code>
tag, it is necessary to put the R functions and
related operations inside of a CDATA
tag.
Note: Your account must be specifically enabled to make use of the R language.
Examples
The following example creates a new worksheet with the columns 'state' and 'elev'. The new
worksheet is a subset of rows
and columns
.
<base table="pub.demo.weather.stations">
<code language_="r">
<![CDATA[
#Create a new worksheet with the columns 'state' and 'elev'.
#The new worksheet is a subset of rows and columns.
#The R objects 'table' and 'ops' automatically exist in the R session.
n <- Rows(ops,table) #get number of rows
cmd <- ColsMetaData(ops,table) #get meta-data
cols <- c('state','elev')
cols.ind <- which(ColNames(cmd) %in% cols)
cmd2 <- SliceMetaData(cmd,cols.ind) #subset meta-data
dat <- Data(ops,table,10:n,cols) #get data
ops <- ReBase(dat,cmd2) #re-base and assign to new value to ops.
]]>
</code>
The following example tests 4 columns for normality:
<base table="mdb_regression_test_folder.stations"/>
<code language_="r">
<![CDATA[
a <- function(ops,table){
if((N <- Rows(ops,table)) > 1000000) stop('too much data')
d <- Data(ops,table)
test.cols <- c('lat','lon','elev','anht')
#run shapiro tests and rbind together data.frames
shapiro.results <- do.call("rbind",
lapply(d[,test.cols],function(x){
r <- shapiro.test(x)
data.frame(stat=r$statistic,
p_val=r$p.value,
method=r$method)}))
shapiro.results$name <-row.names(shapiro.results)
#run KS tests and rbind results
ks.results <- do.call("rbind",
lapply(d[,test.cols],function(x){
r <- ks.test(scale(x),"pnorm")
data.frame(stat=r$statistic,
p_val=r$p.value,
method=r$method)}))
ks.results$name <- row.names(ks.results)
#rbind shapiro and KS results
res <- rbind(shapiro.results,ks.results)
ops <- ReBase(res)}
ops <- a(ops,table)
]]>
</code>
<willbe name="is_normal" value="p_val>0.05"/>