R-从R中获取帮助+科学计算器

1. 从R中获取帮助

查找某个函数

# 打开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}")

其它有用的东西

  1. 邮件列表
  2. RSeek
  3. R博客
  4. Stack Overflow

安装其它相关软件

install.packages("installr") # 下载并安装installr包
library(installr) # 装载installr包
install.RStudio() # 下载并安装RStudioIDE
install.Rtools() # 需要用Rtools来构建自己的包
install.git() # git提供了代码的版本控制功能

2. 科学计算器

本章目标

  1. 把R当成一个科学计算器来使用
  2. 给变量赋值并查看它的值
  3. 使用无限值和缺失值
  4. 什么是逻辑向量以及如何操作它们

向量: 数值的有序值,向量在统计学中及其重要,因为分析对象一般是整个数据集,而不仅是一条数据

冒号运算符 : 创建一个从某个数值开始到另一个数值结束的序列
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中,向量化有几种含义

  1. 最常见: 运算符或函数能作用于向量中的每个元素,而无需显示地编写循环语句(这种内置地基于元素地隐式循环远远快于显式循环语句)
  2. 当一个函数把一个向量作为输入时,能计算汇总统计
sum(1:5)
## [1] 15
median(1:5)
## [1] 3
  1. 参数的向量化,当函数根据输入参数计算汇总统计时,如sum函数
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

也可以用==来比较字符串,不过这种比较会区分大小写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值