2017-01-15 13:32:25
?Ops
)名称 | 符号 | 等价函数 | 举例 | 等价于 | 结果 |
---|---|---|---|---|---|
加 | + | "+"() | 1 + 2 | "+"(1, 2) | 3 |
减 | - | "-"() | 1 - 2 | "-"(1, 2) | -1 |
乘 | * | "*"() | 1 * 2 | "*"(1, 2) | 2 |
处以 | / | "/"() | 1 / 2 | "/"(1, 2) | 0.5 |
求余 | %% | "%%"() | 5 %% 2 | "%%"(5, 2) | 1 |
整除 | %/% | "%/%"() | 5 %/% 2 | "%/%"(5, 2) | 2 |
乘方 | ^ | "^"() | 5 ^ 2 | "^"(5, 2) | 25 |
乘方 | ** | "**"() | 5 ** 2 | "**"(5,2) | 25 |
名称 | 符号 | 等价函数 | 举例 | 结果 |
---|---|---|---|---|
大于 | > | ">"() | 1 > 2 | FALSE |
小于 | < | "<"() | 1 < 2 | TRUE |
大于等于 | >= | ">="() | 1 >= 2 | FALSE |
小于等于 | <= | "<="() | 1 <= 2 | TRUE |
等于 | == | "=="() | 1 == 2 | FALSE |
不等于 | != | "!="() | 1 != 2 | TRUE |
包含于 | %in% | "%in%"() | 1 %in% c(1,3) | TRUE |
名称 | 符号 | 等价函数 | 举例 | 结果 |
---|---|---|---|---|
且(向量) | & | "&"() | c(TRUE, TRUE) & c(FALSE, TRUE) | c(FALSE, TRUE) |
且(标量) | && | "&&"() | c(TRUE, TRUE) && c(FALSE, TRUE) | FALSE |
或(向量) | | | "|"() | c(TRUE, TRUE) | c(FALSE, TRUE) | c(TRUE, TRUE) |
或(标量) | || | "||"() | c(TRUE, TRUE) || c(FALSE, TRUE) | TRUE |
非 | ! | "!"() | ! TRUE | FALSE |
名称 | 符号 | 等价函数 | 举例 | 结果 | 备注 |
---|---|---|---|---|---|
序列 | : | seq() |
1:3 | c(1, 2, 3) | |
波浪 | ~ | "~"() |
y ~ x | 模型y~x | |
附加包显式对象 | :: | "::"() |
base::abs(-2) | 2 | 被export到附加包Namespace的函数/数据集 |
附加包隐式对象 | ::: | ":::"() |
MASS:::vcov.polr | 略 | 未被export到附加包Namespace的函数/数据集 |
apply()
家族)> 1:4 + 1:4 [1] 2 4 6 8
\[ \begin{pmatrix} 1\\ 2\\ 3\\ 4 \end{pmatrix} + \begin{pmatrix} 1\\ 2\\ 3\\ 4 \end{pmatrix} = \begin{pmatrix} 2\\ 4\\ 6\\ 8 \end{pmatrix} \]
> 1:4 + 1:2 [1] 2 4 4 6
\[ \begin{pmatrix} 1\\ 2\\ 3\\ 4 \end{pmatrix} + \begin{pmatrix} 1\\ 2\\ 1\\ 2 \end{pmatrix} = \begin{pmatrix} 2\\ 4\\ 4\\ 6 \end{pmatrix} \]
c(T, T, F, F) & c(T, F, T, F) [1] TRUE FALSE FALSE FALSE
\[ \begin{pmatrix} TRUE\\ TRUE\\ FALSE\\ FALSE \end{pmatrix} \& \begin{pmatrix} TRUE\\ FALSE\\ TRUE\\ FALSE \end{pmatrix} = \begin{pmatrix} TRUE\\ FALSE\\ FALSE\\ FALSE \end{pmatrix} \]
c(T, T, F, F) && c(T, F, T, F) [1] TRUE
\[ \begin{pmatrix} \textbf{TRUE}\\ TRUE\\ FALSE\\ FALSE \end{pmatrix} \&\& \begin{pmatrix} \textbf{TRUE}\\ FALSE\\ TRUE\\ FALSE \end{pmatrix} = TRUE \]
结论:反正R是很擅长矩阵运算的。
> 1:4 %*% 1:4 ## inner production [1] 30\[ \begin{pmatrix} 1\\ 2\\ 3\\ 4 \end{pmatrix} \cdot \begin{pmatrix} 1\\ 2\\ 3\\ 4 \end{pmatrix} = 1 + 4 + 9 + 16 \]
> 1:4 %o% 1:4 # outer production [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 2 4 6 8 [3,] 3 6 9 12 [4,] 4 8 12 16
\[ \begin{pmatrix} 1\\ 2\\ 3\\ 4 \end{pmatrix} \otimes \begin{pmatrix} 1 & 2 & 3 & 4 \end{pmatrix} = \begin{pmatrix} 1 & 2 & 3 & 4\\ 2 & 4 & 6 & 8\\ 3 & 6 & 9 & 12\\ 4 & 8 & 12 & 16 \end{pmatrix} \]
function( arglist ) { # comments expr return(value) }
name=默认取值
;以内置泛型函数print
的默认方法print.default
为例,看函数结构
> print.default function (x, digits = NULL, quote = TRUE, na.print = NULL, print.gap = NULL, right = FALSE, max = NULL, useSource = TRUE, ...) { noOpt <- missing(digits) && missing(quote) && missing(na.print) && missing(print.gap) && missing(right) && missing(max) && missing(useSource) && missing(...) .Internal(print.default(x, digits, quote, na.print, print.gap, right, max, useSource, noOpt)) } <bytecode: 0x07b8c9a8> <environment: namespace:base>
library(<包名>)
调用格式
fun(arglist)
类型 | 名称 | 函数 | 举例 | 结果 |
---|---|---|---|---|
代数 | 自然对数 | log |
log(10) | 2.302585 |
科学对数 | log10 |
log10(10) | 1 | |
幂 | exp |
exp(2) | 7.389056 | |
三角函数 | sin, cos, tan |
sin(pi/6) | 0.5 | |
绝对值 | abs |
abs(-1) | 1 | |
逻辑 | 所有 | all |
all(c(T, F, T)) | FALSE |
任一 | any |
any(c(T, F, T)) | TRUE | |
比较 | 异或 | xor |
xor(TRUE, FALSE) | TRUE |
全等 | identical |
identical(1, 1L) | FALSE |
需求: 定义一个函数addN,将一个向量x的每个元素加n。如果不指定n,就加1。
> addN <- function(x, n=1){ + # add n to vector x + # params: + # x: vector + # n: default 1 + x <- x + n + return(x) + } > x <- c(1, 4, 2, 6) > addN(x=x) [1] 2 5 3 7
<<-
可穿透当前环境,将某对象抛入上一级环境> x <- 2 > z Error: object 'z' not found > environment() <environment: R_GlobalEnv> > f <- function(x) { + print(environment()) # this env + z <<- x # super assignment + return(x + 1) + }
> y <- f(x=5) > y <environment: 0x1342c330> [1] 6 > environment() [1] <environment: R_GlobalEnv> > x [1] 2 > z [1] 5
默认载入的环境: RStudio中,Environment面板 –> Global Environment 下拉菜单
search()
[1] ".GlobalEnv" "tools:rstudio" "package:stats" "package:graphics" [5] "package:grDevices" "package:utils" "package:datasets" "package:methods" [9] "Autoloads" "package:base"
设计一个名称格式为"%<算符名>%"(lhs, rhs)
的函数(必须包含两个参数),可获得一个名为%<算符名>%
的算符,等价于lhs %<算符名>% rhs
。
> "%+n%" <- function(x, n){ + x <- x + n + return(x) + } > x <- c(1, 4, 2, 6) > x %+n% 2 [1] 3 6 4 8 > x %+n% 1.5 [1] 2.5 5.5 3.5 7.5
Thank you!