R function


R has a lot of builtin functions which are included in the System Libraries. These libraries include base, datasets, stats, graphics, methods, utils etc which will be loaded automatically.

> library()  #list all loaded libraries and packages
> library("sqldf")  #load package "sqldf"
> ls("package:sqldf")  #list all functions in sqldf
[1] "read.csv.sql" "read.csv2.sql" "sqldf"

You can easily define a function of your own. If no return statement is specified, the R function will return the variable on the last line.

> ozml <- function(x){  #fluid ounce to mililiter convert function
+ y <- 29.57353 * x
+ }
> x <- ozml(2)
> x
[1] 59.14706

With multiple arguments:

> ftin_m <- function(f,i){ #feet inches to meter convert function
+ m <- (f * 12 + i) * 0.0254
+ return (m)
+ }
> ftin_m(5,9)
[1] 1.7526

The defined function may have optional arguments with default values, and return error or warning messages if condition not met.

> addtwo <- function(x,y=2){
if (length(x) != 1) {stop("Unknown data type")}
if (x < 0) {warning("argument is negative")}
tryCatch({
v <- x + y
},
error=function(e){
cat ("ERROR: ", conditionMessage(e),"\n")})
return (v)
}
> addtwo(5)
[1] 7
> addtwo(5,8)
[1] 13
> addtwo(-2)
[1] 0
Warning message:
In addtwo(-2) : argument is negative
> addtwo(c(2,3))
Error in addtwo(c(2, 3)) : Unknown data type
> addtwo("a")
ERROR:  non-numeric argument to binary operator
Error in addtwo("a") : object 'v' not found

Define a function with unknown number of arguments:

> addmore <- function(x,y,...){
tryCatch({
v <- sum(...)
},
error=function(e){
cat ("ERROR: ", conditionMessage(e),"\n")})
return (v)
}
> addmore(2,3,6,8,9)
[1] 23

Statements can be seperated by ";", or just in different lines.

> total <- 0
> repeat { total <- total + 1; print(total); if (total > 6) break; }

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7

Getting Help, for example function plot():

>?plot  #show help page for function plot
>help(plot)
>??plot
>help("xyplot",package="lattice")
>help("!")  #help for operator !
>help.start() #show HTML R help pages
>help.search("plot") #show all functions which name has keyword plot

apropos(x) function shows all functions which name contains the string x, only of loaded packages.

> apropos("test")
 [1] ".valueClassTest"         "ansari.test"
[3] "bartlett.test"           "binom.test"
[5] "Box.test"                "chisq.test"
[7] "cor.test"                "file_test"
[9] "fisher.test"             "fligner.test"
[11] "friedman.test"           "kruskal.test"
[13] "ks.test"                 "mantelhaen.test"
[15] "mauchly.test"            "mcnemar.test"
[17] "mood.test"               "oneway.test"
[19] "pairwise.prop.test"      "pairwise.t.test"
[21] "pairwise.wilcox.test"    "poisson.test"
[23] "power.anova.test"        "power.prop.test"
[25] "power.t.test"            "PP.test"
[27] "prop.test"               "prop.trend.test"
[29] "quade.test"              "shapiro.test"
[31] "t.test"                  "testInheritedMethods"
[33] "testPlatformEquivalence" "testVirtual"
[35] "var.test"                "wilcox.test" 




endmemo.com © 2024  | Terms of Use | Privacy | Home