List of R functions: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{encyclopedia|moderator=|stub=Yes}} | [[Category:R tool]] | ||
{{encyclopedia|moderator=Teemu R|stub=Yes}} | |||
This page contains listings of some [[R]] functions and commands by category. | This page contains listings of some [[R]] functions and commands by category. The format is pretty stupid but can't do much better with wiki formatting, sorry. | ||
== Workspace and help == | == Workspace and help == | ||
Line 63: | Line 64: | ||
| test if object ''x'' exists in memory | | test if object ''x'' exists in memory | ||
|----- | |----- | ||
| as.numeric(x), as.list(x), ... | | as.numeric(x), as.list(x), as.character(x), as.factor(x), as.data.frame(x),... | ||
| coerce mode of object ''x'' | | coerce mode of object ''x'' | ||
|----- | |----- | ||
Line 109: | Line 110: | ||
! functionality | ! functionality | ||
|----- | |----- | ||
| if(logical_expression) expression_1 else expression_2 | | if(logical_expression) {expression_1} else {expression_2} | ||
| if then else | | if then else | ||
|----- | |----- | ||
| for (x in vector) expression | | for (x in vector) {expression} | ||
| loop through elements of ''vector'' as ''x'' | | loop through elements of ''vector'' as ''x'' | ||
|----- | |----- | ||
| while (logical_expression) expression | | while (logical_expression) {expression} | ||
| while loop | | while loop | ||
|----- | |----- | ||
| name <- function(input1, ...) {expression_1; ...; return(output) | | name <- function(input1, ...) {expression_1; ...; return(output)} | ||
| function definition | | function definition | ||
|----- | |----- | ||
Line 142: | Line 143: | ||
|----- | |----- | ||
| <, >, <=, >=, ==, != | | <, >, <=, >=, ==, != | ||
| comparison operators | | comparison operators (less than, greater than, less or equal, greater or equal, equal, not) | ||
|----- | |----- | ||
| &, |, ! | | &, <nowiki>|</nowiki>, ! | ||
| logical operators (and, or, not) | | logical operators (and, or, not) | ||
|----- | |----- | ||
Line 172: | Line 173: | ||
|----- | |----- | ||
| pi | | pi | ||
| 3. | | 3.1415926... | ||
|----- | |----- | ||
| ceiling(x) | | ceiling(x) | ||
| smallest integer >= x | | smallest integer >= x | ||
|----- | |----- | ||
| floor | | floor(x) | ||
| largest integer <= x | | largest integer <= x | ||
|----- | |----- | ||
Line 198: | Line 199: | ||
|----- | |----- | ||
| x[i] | | x[i] | ||
| select subvector using index vector | | select subvector from x using index vector i | ||
|----- | |----- | ||
| x[logical], subset(x, subset) | | x[logical], subset(x, subset) | ||
| select subvector using logical vector | | select subvector using logical vector | ||
|----- | |----- | ||
| c(...) | | c(x, y,...) | ||
| combine vectors | | combine vectors x, y, ... | ||
|----- | |----- | ||
| seq(from, to, by), from:to | | seq(from, to, by), from:to | ||
Line 285: | Line 286: | ||
| array(data, dim) | | array(data, dim) | ||
| create a multidimensional array | | create a multidimensional array | ||
|----- | |||
|reshape(data, idvar="id", timevar="a", v.names="b", direction="wide") | |||
|reshape long data to wide (b=the values you want to show up under your new columns, id=the id that you want to group your data record by; a=the values that you want to make up the new columns; however many distinct values are in this column determines the number of new columns; wide= the destination or resulting format we want) | |||
|----- | |||
|melt(data, id.vars = c("a"), variable_name = "b" | |||
|reshape data wide to long; you need library(reshape); a=the values you want be indices; b the name of result column | |||
|} | |} | ||
Line 325: | Line 332: | ||
|----- | |----- | ||
| apply(x, i, f, ...) | | apply(x, i, f, ...) | ||
| apply ''f'' over index ''i'' of array ''x'' | | apply function ''f'' over index ''i'' of array ''x'' | ||
|----- | |----- | ||
| sapply(x, f, ...) | | sapply(x, f, ...) | ||
| apply ''f'' to ''x'' and return a vector | | apply function ''f'' to ''x'' and return a vector | ||
|----- | |----- | ||
| lapply(x, f, ...) | | lapply(x, f, ...) | ||
| apply ''f'' to ''x'' and return a list | | apply function ''f'' to ''x'' and return a list | ||
|----- | |----- | ||
| tapply(x, i, f, ...) | | tapply(x, i, f, ...) | ||
| apply ''f'' to subvectors of ''x'' given by levels of factor ''i'' | | apply function ''f'' to subvectors of ''x'' given by levels of factor ''i'' | ||
|----- | |----- | ||
| mapply(f, ...) | | mapply(f, ...) | ||
| apply ''f'' to multiple arguments | | apply function ''f'' to multiple arguments | ||
|} | |} | ||
Line 354: | Line 361: | ||
|----- | |----- | ||
| read.csv(file) | | read.csv(file) | ||
| read comma separated data | | read comma separated data (read.table is recommended instead) | ||
|----- | |----- | ||
| read.delim(file) | | read.delim(file) | ||
| read tab-delimited data | | read tab-delimited data (read.table is recommended instead) | ||
|----- | |----- | ||
| readline(prompt) | | readline(prompt) | ||
Line 384: | Line 391: | ||
|----- | |----- | ||
| paste(..., sep = " ") | | paste(..., sep = " ") | ||
| paste strings together | | paste strings together with separator ''sep'' | ||
|----- | |----- | ||
| write(x, file, append = FALSE) | | write(x, file, append = FALSE) | ||
Line 492: | Line 499: | ||
| :bty = "?" | | :bty = "?" | ||
| determine box type drawn around plot | | determine box type drawn around plot | ||
|} | |||
== Random numbers and probability distributions == | |||
{|{{prettytable}} | |||
|+ '''Random numbers and probability distributions''' | |||
! function name | |||
! functionality | |||
|----- | |||
| ddist(x, p1, ...) | |||
| P(X=x) or f(x) | |||
|----- | |||
| pdist(q, p1, ...) | |||
| P(X<=q) | |||
|----- | |||
| qdist(p, p1, ...) | |||
| ''p''-th quantile, equivalently 100%-point | |||
|----- | |||
| rdist(n, p1, ...) | |||
| pseudu-random numbers | |||
|----- | |||
| dist p1, ... | |||
| distribution and parameters | |||
|----- | |||
| :unif min = 0, max = 1 | |||
| uniform | |||
|----- | |||
| :binom size, prob | |||
| binomial | |||
|----- | |||
| :geom prob | |||
| geometric | |||
|----- | |||
| :hyper m, n, k | |||
| hypergeometric | |||
|----- | |||
| :nbinom size, prob | |||
| negative binomial | |||
|----- | |||
| :poist lambda | |||
| Poisson | |||
|----- | |||
| :exp rate | |||
| exponential | |||
|----- | |||
| :chisq df | |||
| chi square | |||
|----- | |||
| :gamma shape, rate | |||
| gamma | |||
|----- | |||
| :norm mean, sd | |||
| normal | |||
|----- | |||
| :t df | |||
| t distribution | |||
|----- | |||
| :weibull shape, scale | |||
| Weibull | |||
|----- | |||
| set.seed(seed) | |||
| set position in pseudo-random sequence | |||
|----- | |||
| .Random.seed | |||
| state if the random number generator | |||
|----- | |||
| RNGkind() | |||
| which random number generator? | |||
|----- | |||
| sample(x, n, replace = TRUE) | |||
| sample size ''n'' from ''x'' | |||
|} | |} | ||
Line 510: | Line 588: | ||
| | | | ||
|} | |} | ||
== References == | |||
Most of the listings are a pretty straight rip-off from the last pages of the book "Introduction to Scientific Programming and Simulation Using R" by Owen Jones, Robert Maillardet and Andrew Robinson, an excellent book by the way. Added some specifics and will edit the format later, so this is only a quick template, maybe. |
Latest revision as of 08:22, 9 September 2011
This page is a encyclopedia article.
The page identifier is Op_en5140 |
---|
Moderator:Teemu R (see all) |
This page is a stub. You may improve it into a full page. |
Upload data
|
This page contains listings of some R functions and commands by category. The format is pretty stupid but can't do much better with wiki formatting, sorry.
Workspace and help
function name | functionality |
---|---|
getwd() | get working directory |
setwd(dir) | set working directory to dir |
help(topic), ?topic | get help on topic, usually function name |
help.search("keyword") | search for help |
help.start() | HTML help start page |
demo() | list available demonstrations |
save(..., file), load(file) | save and load objects |
savehistory(file), loadhistory(file) | save and load command history |
source(file) | execute commands from file |
list.files(dir), dir(dir) | list files in directory dir |
q() | quit R |
Objects
function name | functionality |
---|---|
mode(x) | mode of x |
ls(), objects() | list objects in memory |
rm(x), rm(list = ls()) | remove x or all objects |
exists(x) | test if object x exists in memory |
as.numeric(x), as.list(x), as.character(x), as.factor(x), as.data.frame(x),... | coerce mode of object x |
is.numeric(x), is.na(x), ... | test mode of object x |
identical(x, y) | test if objects are identical |
return(invisible(x)) | return invisible copy (doesn't print) |
Packages
function name | functionality |
---|---|
install.packages(name) | download and install package name |
download.packages(name, dir) | download package name into dir |
library(name), require(name) | load package name |
data(name) | load dataset name |
.libPaths(dir) | add directory dir to library paths |
sessionInfo() | list loaded packages |
Flow and control and function definition
function name | functionality |
---|---|
if(logical_expression) {expression_1} else {expression_2} | if then else |
for (x in vector) {expression} | loop through elements of vector as x |
while (logical_expression) {expression} | while loop |
name <- function(input1, ...) {expression_1; ...; return(output)} | function definition |
stop(message) | cease processing and print message |
browser() | stop to inspect objects for debugging |
system.time(expression) | report runtime for expression |
Mathematical and logical operators and functions
function name | functionality |
---|---|
+, -, *, /, ^, %%, %/% | algebraic operators, %% for remainder of integer division, %/% for integer division i.e. rounded down to 0 decimal places |
<, >, <=, >=, ==, != | comparison operators (less than, greater than, less or equal, greater or equal, equal, not) |
&, |, ! | logical operators (and, or, not) |
&&, || | and/or evaluated progressively from left |
xor(A, B) | exclusive or (A or B but not both) |
ifelse(condition, x, y) | choose x or y elementwise |
sin(x), cos(x), tan(x) | sine, cosine and tangent |
asin(x), acos(x), atan(x) | inverse sine, cosine and tangent |
exp(x), log(x) | exponential and logarithm base e |
sqrt(x) | square root |
abs(x) | absolute value |
pi | 3.1415926... |
ceiling(x) | smallest integer >= x |
floor(x) | largest integer <= x |
all.equal(x, y) | almost equal |
round(x, k) | round x to k digits |
deriv(expression, vars) | symbolic differentiation |
Vectors
function name | functionality |
---|---|
x[i] | select subvector from x using index vector i |
x[logical], subset(x, subset) | select subvector using logical vector |
c(x, y,...) | combine vectors x, y, ... |
seq(from, to, by), from:to | generate an arithmetic sequence |
rep(x, times) | generate repeated values |
length(x) | length of x |
which(x) | indices of TRUE elements of x |
sum(...) | sum over vector(s) |
prod(...) | product over vector(s) |
cumsum(x), cumprod(x) | cumulative sum and product |
min(...), max(...) | minimum and maximum |
sort(x) | sort a vector |
mean(x) | sample mean |
var(x), sd(x) | sample variance and standard deviation |
order(x) | rank order of elements of x |
Matrices
function name | functionality |
---|---|
matrix(data, nrow, ncol, byrow) | create a matrix |
rbind(...), cbind(...) | combine rows or columns |
diag(x) | create a diagonal matrix |
%*% | matrix multiplication |
nrow(A), ncol(A) | number of rows and columns |
colMeans(A), colSums(A) | column means or sums |
dim(A) | dimensions of x |
det(A) | determinant |
t(A) | transpose |
solve(A, b) | solution of A x == b |
solve(A) | matrix inverse |
array(data, dim) | create a multidimensional array |
reshape(data, idvar="id", timevar="a", v.names="b", direction="wide") | reshape long data to wide (b=the values you want to show up under your new columns, id=the id that you want to group your data record by; a=the values that you want to make up the new columns; however many distinct values are in this column determines the number of new columns; wide= the destination or resulting format we want) |
melt(data, id.vars = c("a"), variable_name = "b" | reshape data wide to long; you need library(reshape); a=the values you want be indices; b the name of result column |
Dataframes, factors and lists
function name | functionality |
---|---|
data.frame(...) | create a dataframe |
str(x) | summarise structure of x |
names(x) | names of x |
dim(x) | number of rows and columns of x |
attach(x) | copy dataframe objects into workspace |
detach(x) | delete dataframe objects from workspace |
factor(x) | create a factor |
levels(x) | select levels of factor x |
list(...) | create a list |
unlist(x) | flatten list x into a vector |
apply(x, i, f, ...) | apply function f over index i of array x |
sapply(x, f, ...) | apply function f to x and return a vector |
lapply(x, f, ...) | apply function f to x and return a list |
tapply(x, i, f, ...) | apply function f to subvectors of x given by levels of factor i |
mapply(f, ...) | apply function f to multiple arguments |
Input and output
function name | functionality |
---|---|
scan(file, what, n, sep, skip) | read from a file (or keyboard) |
read.table(file) | read file in table format into dataframe |
read.csv(file) | read comma separated data (read.table is recommended instead) |
read.delim(file) | read tab-delimited data (read.table is recommended instead) |
readline(prompt) | read a line of text from the console i.e. user input |
show(object) | display object on screen |
head(object) | first few lines of object |
tail(object) | last few lines of object |
print(object), object | print object |
options(digits = x) | display x digits in output |
cat(..., file) | concatenate and write |
format(x, digits, nsmall, width) | format x for output |
paste(..., sep = " ") | paste strings together with separator sep |
write(x, file, append = FALSE) | write to a file (or screen) |
sink(file) | redirect output to a file |
dump("x", file) | write text representation of x |
write.table(x, file) | write dataframe x to a file |
Plotting
function name | functionality |
---|---|
plot(x, y) | plot y against x |
:type = "?" | determine the type: |
::"p", "l", "b" | for points, lines or both |
::"c" | for the lines part alone of "b" |
::"o" | for both lines and points overplotted |
::"h" | for vertical lines (histogram like plot) |
::"s", "S" | for step function, across/op or reverse |
::"n" | no data plotted, only axes |
:main = "title" | provides plot title |
:xlim = c(a,b) | set lower and upper limits of x-axis |
:ylim = c(a,b) | set lower and upper limits of y-axis |
:xlab = "?", ylab = "?" | provide label for x-axis and y-axis |
:pch = k | set shape of points (k from 1 to 25) |
:lwd = ? | set line width, default 1 |
:col = "?" | set line and point colour |
colour(), color() | list R colours |
lines(x, y) | add lines to plot |
abline(h), abline(v) | draw horizontal and vertical lines |
points(x, y) | add points to plot |
text(x, y, labels) | place text on plot |
curve(f, from, to) | plot f |
par(?) | set graphical parameters: |
:mfrow = c(nr, nc) | create grid of plots with nr rows and nc columns filled by row (mfcol fills by col) |
:oma = c(b, l, t, r) | create outer margin around each plot |
:mar = c(b, l, t, r) | create margin around each plot |
:las = 1 | make y-axis labels horizontal |
:pty = "s" | force the plot shape to be square |
:cex = x | magnify symbols and text by a factor x |
:bty = "?" | determine box type drawn around plot |
Random numbers and probability distributions
function name | functionality |
---|---|
ddist(x, p1, ...) | P(X=x) or f(x) |
pdist(q, p1, ...) | P(X<=q) |
qdist(p, p1, ...) | p-th quantile, equivalently 100%-point |
rdist(n, p1, ...) | pseudu-random numbers |
dist p1, ... | distribution and parameters |
:unif min = 0, max = 1 | uniform |
:binom size, prob | binomial |
:geom prob | geometric |
:hyper m, n, k | hypergeometric |
:nbinom size, prob | negative binomial |
:poist lambda | Poisson |
:exp rate | exponential |
:chisq df | chi square |
:gamma shape, rate | gamma |
:norm mean, sd | normal |
:t df | t distribution |
:weibull shape, scale | Weibull |
set.seed(seed) | set position in pseudo-random sequence |
.Random.seed | state if the random number generator |
RNGkind() | which random number generator? |
sample(x, n, replace = TRUE) | sample size n from x |
Statistical tests
function name | functionality |
---|---|
t.test | en:Student's t-test |
aov | en:Analysis of variance |
References
Most of the listings are a pretty straight rip-off from the last pages of the book "Introduction to Scientific Programming and Simulation Using R" by Owen Jones, Robert Maillardet and Andrew Robinson, an excellent book by the way. Added some specifics and will edit the format later, so this is only a quick template, maybe.