R语言基础学习

参考

W3C的R教程
R语言初级教程
rdocumentation

概论

R适合统计和可视化;Python适合机器学习和深度学习。
R的集成开发环境RStudio,下载找R语言初级教程(01): R编程环境的搭建
R有强大的社区支持,可以通过以下查看你需要使用的贡献包。

使用install.packages('data.table')安装"data.table" 包
使用installed.packages()查看已经安装的全部包
使用library(data.table)加载"data.table" 包
使用library(help=data.table)来查看 “data.table” 包的相关信息
使用Ctrl+L清屏
使用q退出当前的查询文档,使用q()退出交互界面
使用help(mean)或者?mean查询函数“mean”的用法
使用getwd()得到当前工作目录
使用source('xx/tool.R')在当前工作脚本中导入R脚本’tool.R’中的对象,如果在’tool.R’中有对象
dir = path.expand(dirname(sys.frame(1)$ofile)),则在使用当前工作脚本时,可以根据dir得到’tool.R’所在的目录

运算

算术运算

  • 四则运算 +、-、*、/
  • 幂指数对数 ^、exp()、log(x,base=a)或者log()或者log2()或者log10等【log是自然对数】
  • 整除商%/%、余数%%
  • 三角函数为弧度制cos、sin等
  • 绝对值abs
  • 平方根sqrt

关系运算和逻辑运算

  • 比较大小:<, >, =, <=, >=, !=, ==
  • 且 &,或 |,非!,异或 xor(x, y)

变量

在R语言中,使用变量前不需要声明变量的类型。变量是在赋值运算后才创建的。

变量名中包含_和.和字母(区分大小写)和数字,但是不能包括空格,并且不能以数字或者符号开头(只能以字母开头)

可以使用向左,向右和等于运算符来为变量赋值。建议使用<-为变量赋值,使用=进行传参。见你知道R中的赋值符号箭头(<-)和等号(=)的区别吗?

可以使用print()或cat()函数打印变量的值。 cat()函数将多个项目组合成连续打印输出。

判断:NA,NULL,NaN,Inf

a = (0:3)
b = b^Inf
print(b)

数据类型

向量

向量(vector)是R语言最基本的数据类型。向量中的元素必须为同一属性,常见的向量类型有数值型向量、字符型向量和逻辑型向量。

创建

单个数(标量)也是一个向量,只不过它的长度为1。我们可以通过is.vector()函数来验证.

print(is.vector(3))  # [1] TRUE
ages <- c(23, 26)   # 数值型向量
print(ages) #[1] 23 26
nw_ages <- c(60, ages, 32)
print(class(nw_ages))  #[1] "numeric"
print(length(nw_ages))  #[1] 4
print(mean(nw_ages))  #[1] 35.25

这里的c(......)函数(c是combine的首字母)会把它所有的参数首尾相连而形成一个向量,其中函数可以传入任意数量参数。并且参数也可以是向量。当c()函数的参数类型不同时,会强制转化成同一类型;而且每种类型的强弱不一样,强弱顺序为:character > complex > numeric > integer > logical。

另外的创建方法,如冒号,seq,rep,见R语言初级教程(10): 向量(中篇)

访问

有时你可能只需要使用向量中的某些元素,这时要用到索引。在R中,[]来指定索引,索引从位置1开始。注意:元素访问操作不会改变原向量的内容。

  • 使用向量,访问多个元素
> new_ages[c(1, 3, 4)]
[1]  60 26 32
  • 使用-符号进行排除输出,以及使用关系运算进行条件输出
> new_ages[-c(1,3,4)] # 排除掉1,3,4后输出
[1] 23
> new_ages[new_ages<50] # 输出小于50的值
[1] 23 26 32
  • 使用冒号进行切片
> new_ages[1:3]  # 输出1,2,3
[1] 60 23 26

有名称的向量的相关操作见R语言初级教程(09): 向量(上篇)

修改

使用重新赋值的方式修改,可以对整个向量赋值,也可以对部分元素赋值

ages <- 2:5
ages[1] <- 100
ages[3:4] <- c(0,0)
ages <- 20:25

向量运算

  • 向量间运算是元素运算的扩展,当不匹配时,以循环方式补全长度短的向量
> a1 <- 2:3
> a1
[1] 2 3
> a2 <- 4:6
> a2
[1] 4 5 6
> a1 + a2   # a1 补全为2 3 2
[1] 6 8 8  
Warning message:
In a1 + a2 :
  longer object length is not a multiple of shorter object length
  > a3 <- 4:7
> a1 + a3   # a1 补全为2 3 2 3
[1]  6  8  8 10
  • 函数作用,相当于分别作用

  • 点集,使用%*%,只对长度相同的操作,没有补全机制,输出为一个矩阵

> a1 %*% a1
     [,1]
[1,]   13

常用函数

参见R语言初级教程(11): 向量(下篇),主要是统计运算和集合运算。

矩阵和数组

矩阵和数组类似于向量

列表

列表是一个R对象,它可以在其中包含许多不同类型的元素,如向量,函数甚至其中的另一个列表。
列表的基本使用
可以发现,R的列表近乎Python的有序字典,用起来很方便。
列表取值上,嵌套的话可以config$data$train这种方式连续取值。

数据框

数据框(dataframe)是R中最常处理的数据结构。数据框由行、列构成。本身可以看成是一种特殊的列表。可以使用data.frame()函数创建数据框,也可以通过read.table()从文件中得到。

处理数据框的时候,有两点要记住:

  • 虽然各列允许有不同类型:数值型向量、因子、字符型向量、日期时间向量等,但同一列的数据类型一定是相同的。

  • 列名中不允许有空格出现,否则read.table()将读取失败。因此上面的变量名Field Name,Soil pH,Worm density中的空格会用.来代替。

打印

打印数据类型:print(class(a))
cat和print的差别:参考

  • print只能输出一个,且默认以换行结尾,输出结果带编号
  • cat可以输出多个(以逗号分隔),可以设置sep,需要显示添加换行符

文件操作

文件基本操作
无需导入包,直接操作,很方便
文件读取(网站含有在线R工具,很方便)

命令行解析

参考R optparse Args 命令行传递参数包,,总结如下。

  1. 加载optparse包:library(optparse)
  2. 定义命令行选项列表:
option_list = list(
make_option(c('-c', '--config'), type='character', help='配置文件路径', default=NULL),
make_option(c('-o', '--out_dir'), type='character', help='输出目录', default=NULL)
)
  1. 定义OptionParser对象:
opt_parser = OptionParser(option_list=option_list)
  1. 定义解析后的(named)列表:
opt = parse_args(opt_parser)
  1. 取出选项值:
config = opt$config

在使用中,如果建立一个可执行文件try.R保存1-5(文件头:#!/usr/bin/env Rscript)。如果在命令行输入:./try.R -h会显示option使用方法,打印出make_option中的相关help信息。打印完后就退出程序。

另外还可以用函数print_help(opt_parser)打印出同样的帮助信息,但是不会退出程序。如果要退出程序,可以使用stop("提示信息")

完整的代码示范:

#!/usr/bin/env Rscript
library(optparse) #加载optparse包的命名空间,并且把它放在搜索列表中,如果这个包不存在,就报错。
option_list = list(
make_option(c("-c", "--config"), type = "character", default = NULL,
help = "config file path", metavar = "character")
)  # 返回OptionParserOption对象,
# 看https://www.rdocumentation.org/packages/optparse/versions/1.6.4/topics/make_option学习make_option函数的参数用法
opt_parser = OptionParser(option_list = option_list)
# 返回OptionParser对象,有默认参数usage = "usage: %prog [options]"
# 看https://www.rdocumentation.org/packages/optparse/versions/1.6.4/topics/OptionParser学习OptionParser函数
opt = parse_args(opt_parser)
# 返回list,
# 看https://www.rdocumentation.org/packages/optparse/versions/1.6.4/topics/parse_args学习parse_args函数
if (is.null(opt$config)) {
    print_help(opt_parser)  # print_help在library(optparse)中,打印OptionParser对象的Usage消息,但是不会退出执行
    stop('The config file path is missing.')  # 退出执行,并且打印提示消息
}

常用包

plotROC、pROC:ROC可视化和分析

caret构建模型
The caret package (short for Classification And REgression Training) is a set of functions that attempt to streamline the process for creating predictive models. The package contains tools for:

  • data splitting
  • pre-processing
  • feature selection
  • model tuning using resampling
  • variable importance estimation
  • as well as other functionality.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值