# 打开mean函数的帮助页面
?mean
help("mean")
# 打开加号操作的帮助页面
?"+"
help("+")
# 打开if的帮助页面,用于分支代码
?"if"
help("if")
# 搜索所有包含"plotting"的主题
??plotting
help.search("plotting")
# 搜索所有与regression model相关的主题
??"regression model"
help.search("regression model")
?函数名/help(函数名)
??关键词/help.search(关键词)
对于特殊字符、关键词和多个字词的搜索需要加上单引号或双引号
apropos
函数还可以结合正则表达式
a_vector <- c(1, 3, 6, 10)
apropos("vector")
apropos("z$")
apropos("[4-9]")
example(plot)
demo(Japenese)
browseVignettes()
vignette("Sweave", package = "utils")
帮助搜索操作符??
和browseVignettes
只会发现那些已安装包里的东西,而RSiteSearch函数可以查找任何包
RSiteSearch("{Bayesian regression}")
install.packages("installr") # 下载并安装installr包
library(installr) # 装载installr包
install.RStudio() # 下载并安装RStudioIDE
install.Rtools() # 需要用Rtools来构建自己的包
install.git() # git提供了代码的版本控制功能
向量: 数值的有序值,向量在统计学中及其重要,因为分析对象一般是整个数据集,而不仅是一条数据
冒号运算符 : 创建一个从某个数值开始到另一个数值结束的序列
c函数(concatenate): 把一系列的值拼接起来创建向量
1:5 + 6:10 # look, no loops
## [1] 7 9 11 13 15
c(1, 3, 6, 10, 15) + c(0, 1, 3, 6, 10)
## [1] 1 4 9 16 25
在R中,向量化有几种含义
sum(1:5)
## [1] 15
median(1:5)
## [1] 3
sum(1, 2, 3, 4, 5)
## [1] 15
median(1, 2, 3, 4, 5)
## Error: unused arguments (3, 4, 5)
R中,所有算术运算符都是向量化的
c(2, 3, 5, 7, 11, 13) -2 # 减法
## [1] 0 1 3 5 9 11
-2:2 * -2:2 # 乘法
## [1] 4 1 0 1 4
identical(2 ^ 3, 2**3) # 可以用^或**来求幂,不过**更为常见
## [1] TRUE
1:10 /3 # 浮点数除法
1:10 %/% 3 # 整数除法
1:10 %%3 # 取余
其它常见函数
三角函数 sin cos tan asin acos atan
对数和指数 log exp log1p expm1 (可以对非常小的x值更加精确地计算log(1+x)和exp(x-1))
可以使用==
来比较整数值是否相等
!=
为不相等
> >= < <=
但是使用==
来比较非整型变量,可能会存在舍入误差的问题
目前为止,处理的所有数字都是浮点数,对于两个数a和b来说,它们可以存储为a * 2 ^ b, 由于它们都以32位浮点数存储,所以只能是一个近似值
sqrt(2) ^ 2 == 2
## [1] FALSE
sqrt(2) ^ 2 - 2
## [1] 4.441e-16 # 这个微小差值即为舍入误差
应该使用all.equal
函数来检查数字是否相等,它提供了一定的容忍度(默认1.5e-8)
all.equal(sqrt(2) ^ 2, 2)
## [1] TRUE
如果要比较的值不一样,all.equal返回时将报告其差值,如果需要返回的是逻辑值,则将all.equal函数嵌入isTRUE函数中调用
all.equal(sqrt(2) ^ 2, 3)
## [1] "Mean relative difference: 0.5"
isTRUE(all.equal(sqrt(2) ^ 2, 3))
## [1] FALSE
也可以用==来比较字符串,不过这种比较会区分大小写