R - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


CodeGeneration

  

R

  

translate Maple code to R code

 

Calling Sequence

Parameters

Description

Examples

Compatibility

Calling Sequence

R(x, cgopts)

Parameters

x

-

expression, list, rtable, procedure, or module

cgopts

-

(optional) one or more CodeGeneration options

Description

• 

The R(x, cgopts) calling sequence translates Maple code to R code.

  

- If the parameter x is an algebraic expression, then an R statement assigning the expression to a variable is generated.

  

- If x is a list, Maple Array, or rtable of algebraic expressions, then a sequence of R statements assigning the elements to an R Array is produced. Only the initialized elements of the rtable or Maple Array are translated.

  

- If x is a list of equations nm=expr, where nm is a name and expr is an algebraic expression, then this is understood as a sequence of assignment statements. In this case, the equivalent sequence of R assignment statements is generated.

  

- If x is a procedure, then an R class is generated containing a function equivalent to the procedure, along with any necessary import statements.

  

- If x is a module, then an R class is generated, as described on the RDetails help page.

  

- There is also limited support for the case that x is a command constructor from the Linear Algebra, Statistics or Time Series packages. For supported commands, an equivalent R command is generated. The list of supported commands for Statistics is listed on the RDetails help page.

• 

The parameter cgopts may include one or more CodeGeneration options, as described in CodeGenerationOptions.

• 

For more information about how the CodeGeneration package translates Maple code to other languages, see Translation Details. For more information about translation to R in particular, see RDetails.

Examples

For a description of the options used in the following examples, see CodeGenerationOptions.

withCodeGeneration:

Translate a simple expression and assign it to the name w in the target code.

Rx+yz2xz,resultname=w

w <- -2 * x * z + y * z + x

Translate a list and assign it to an Array with the name w in the target code.

Rx&comma;2y&comma;5&comma;z&comma;resultname=w

w <- c(c(x,2 * y),c(5,z))

Translate a computation sequence, optimizing the input first:

css=1.0+x&comma;t=lnsexpx&comma;r=expx+xt&colon;

Rcs&comma;optimize

s <- 0.10e1 + x
t1 <- log(s)
t2 <- exp(-x)
t <- t2 * t1
r <- x * t + t2

Declare that x is a float and y is an integer and return the result in a string:

sRx+y+1&comma;declare=x::float&comma;y::integer&comma;output=string

scg <- x + y + 1

(1)

Translate a procedure. Assume that all untyped variables have type integer.

f := proc(x, y, z) return x*y-y*z+x*z; end proc:

Rf&comma;defaulttype=integer

f <- function(x,y,z)
  return(y * x - y * z + x * z)

Translate a procedure containing an implicit return. A new variable is created to hold the return value.

f := proc(n)
  local x, i;
  x := 0.0;
  for i to n do
    x := x + i;
  end do;
end proc:

Rf

f <- function(n)
{
  x <- 0.0e0
  for(i in 1 : n)
  {
    x <- x + i
    cgret <- x
  }
  return(cgret)
}

Translate a linear combination of hyperbolic trigonometric functions:

R2coshx7tanhx

cg0 <- 2 * cosh(x) - 7 * tanh(x)

Translate a procedure with no return value containing a printf statement:

f := proc(a::integer, p::integer)
  printf("The integer remainder of %d divided by %d is: %d", a, p, irem(a, p));
end proc:

Rf

f <- function(a,p)
  print(sprintf("The integer remainder of %d divided by %d is: %d",a,p,a %% p))

Translate a procedure involving routines in linear algebra:

detHilbert := proc(M, n :: posint) uses LinearAlgebra;
   return Determinant( HilbertMatrix( n ) );
end proc:

RdetHilbert

require("Matrix")

detHilbert <- function(M,n)
  return(det(Hilbert(n)))

Translate some descriptive statistics commands from the Statistics package:

RStatistics:-MeanMatrix2&comma;4&comma;8&comma;21

cg1 <- mean(matrix(c(2,4,8,21),nrow=1,ncol=4))

RStatistics:-MedianMatrix2&comma;4&comma;8&comma;21

cg2 <- median(matrix(c(2,4,8,21),nrow=1,ncol=4))

RStatistics:-Variance4&comma;8&comma;15&comma;16&comma;23&comma;42

cg3 <- var(c(4,8,15,16,23,42))

RStatistics:-Scale4&comma;8&comma;15&comma;16&comma;23&comma;42&comma;center=2&comma;scale=1

cg4 <- scale(c(4,8,15,16,23,42), center = 2, scale = 1)

Translate a procedure that prints values for the mean and standard deviation:

g := proc( x ) return sprintf("Mean = %.0f\n Standard Deviation = %.0f", 'Statistics:-Mean'(x), 'Statistics:-StandardDeviation'(x) ); end proc:

Rg

g <- function(x)
  return(sprintf("Mean = %.0f\n Standard Deviation = %.0f", mean(x), sd(x)))

Due to different choices for default methods for computing some quantities, some commands may give different results in R than in Maple. For example, when computing certain quantiles, Maple uses method 7 by default whereas R uses method 6. For more details on the methods, see the Data Set Options section of the Quantile help page.

RStatistics:-Quartile4&comma;8&comma;15&comma;16&comma;23&comma;42&comma;3

cg5 <- quantile(c(4,8,15,16,23,42), prob = 3/4)

Translate some other summary statistics:

RStatistics:-Count1&comma;3&comma;5&comma;7

cg6 <- length(c(1,3,5,7))

RStatistics:-CountMissing1&comma;Floatundefined&comma;3&comma;5&comma;7&comma;Floatundefined

cg7 <- sum(is.na(c(1,NaN,3,5,7,NaN)))

RStatistics:-InterquartileRange4&comma;8&comma;15&comma;16&comma;23&comma;42

cg8 <- IQR(c(4,8,15,16,23,42), type = 8)

RStatistics:-FivePointSummary1&comma;3&comma;5&comma;7

cg9 <- fivenum(c(1,3,5,7))

CodeGeneration[R] can translate various statistical visualizations:

RStatistics:-Histogram1&comma;3&comma;5&comma;7&comma;8&comma;4&comma;4&comma;color=Red&comma;title=Histogram&comma;frequencyscale=absolute&comma;axes=none

cg10 <- hist(c(1,3,5,7,8,4,4), axes = FALSE, col = "Red", freq = TRUE, main = "Histogram")

RStatistics:-BoxPlot4&comma;8&comma;15&comma;16&comma;23&comma;42&comma;color=Orange&comma;title=BoxPlot&comma;notched=true&comma;orientation=horizontal

cg11 <- boxplot(c(4,8,15,16,23,42), col = "Orange", notch = TRUE, horizontal = TRUE, main = "BoxPlot")

RStatistics:-BarChart4&comma;8&comma;15&comma;16&comma;23&comma;42&comma;color=Orange&comma;title=Bar Chart&comma;width=0.5&comma;distance=0.2&comma;format=default

cg12 <- barplot(c(4,8,15,16,23,42), col = "Orange", space = 0.2e0, beside = TRUE, main = "Bar Chart", width = 0.5e0, horiz = TRUE)

RTimeSeriesAnalysis:-TimeSeriesPlotTimeSeriesAnalysis:-TimeSeries10&comma;25&comma;30&comma;55

cg13 <- plot.ts(ts(c(10,25,30,55)))

Translate commands to sample values from known distributions. Note that in this case, a warning is returned as R does not support direct references to distribution names in a similar manner to Maple:

RStatistics:-PDFLogNormal0&comma;1&comma;1

cg14 <- dlnorm(1, meanlog = 0, sdlog = 1)

RStatistics:-ProbabilityFunctionPoisson2&comma;1

cg15 <- dpois(1,2)

RStatistics:-CDFLogNormal0&comma;1&comma;1

cg16 <- plnorm(1, meanlog = 0, sdlog = 1)

RStatistics:-SampleNormal0&comma;1&comma;10

cg17 <- rnorm(10, mean = 0, sd = 1)

RStatistics:-QuantileWeibull3&comma;5&comma;0.5

cg18 <- qweibull(0.5e0,5, scale = 3)

Several hypothesis Tests can also be translated:

RStatistics:-ChiSquareIndependenceTest4&comma;8&comma;15&comma;16&comma;23&comma;42

cg19 <- chisq.test(c(4,8,15,16,23,42))

RStatistics:-TwoSampleTTest1&comma;3&comma;5&comma;7&comma;2&comma;4&comma;8&comma;3&comma;1&comma;confidence=0.975&comma;alternative=twotailed

cg20 <- t.test(c(1,3,5,7), c(2,4,8,3), mu = 1, conf.level = 0.975e0, alternative = "two.sided")

Compatibility

• 

The CodeGeneration[R] command was introduced in Maple 2015.

• 

For more information on Maple 2015 changes, see Updates in Maple 2015.

See Also

CodeGeneration

CodeGenerationOptions

RDetails

TranslationDetails

updates,Maple2015,CodeGeneration