R语言基础学习

R语言 optparse的使用 即使R语言常常是以一种交互式的方式来运行的,但是一旦某个图形或者数据分析的流程固定下来以后,在命令行中运行就成为了一件必然的事情,optparse就可以用来实现类似在Python中的argparse一样的作用,使得我们写的R脚本可以在命令行中通过添加参数的方式来运行,同时有帮助文档可以来帮助使用者快速上手。 library(optparse) option_list <- list( ... 阅读详情

参考

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.
【生信|R语言学习01】R语言基础语法 R 语言环境软件属于 GNU 开源软件,兼容性好、使用免费语法十分有利于复杂的数学运算数据类型丰富,包括向量、矩阵、因子、数据集等常用数据结构代码风格好,可读性强。 阅读详情

相关推荐

统计学习导论之R语言应用(二):R语言基础

1、统计学习库——R语言介绍 1.1 基础命令 R使用函数来执行操作。要运行一个名为funcname的函数我们输入funcname(input1, input2) ,其中的输入(或参数)input1并input2告诉R如何运行该函数。一个函数可以有任意数量的输入。 例如,要创建一个数字向量,我们使用函数c()(用于concatenate)。括号内的任何数字都连接在一起。 以下命令指示R将数字 1、3、2 和 5 连接在一起,并将它们保存为名为 的向量x。当我们输入时x,它会给我们返回向量。 x <-

阿里云专家博主、数据科学领域优质创作者、统计er在读 1万+

R命令行传递参数包, 类似python参数传递

R命令行传递参数包, 类似python参数传递 第一种方法: Args &lt;- commandArgs() filename =Args[6] # 第一个参数是Args[6] # 不过这种方法不能设默认参数,也不能省略参数 第二种方法 ##类似python版本 library("optparse") option_list = list( make...

五月的田野 913

【R语言optparse 包】如何让你的R脚本变简洁、变优雅

2. 1 的基础上,添加浮点参数(” %m.nf ” ,其中m 表示打印的宽度,n 表示小数点后的位数。如果流程比较长,或者是希望借助IT实现网页版分析,仅选择几个参数,普通不会代码的人也可以分析,则建议本文的重点R包--optparse。使得R脚本流程化,每次只需要修改参数即可,简化主流程脚本,与IT衔接,实现网页版小白点点点的分析目的。报错2:参数类型指定不对(错写为默认值)----------改为默认的整数 / 字符等即可。现实中,可能要实现一个分析目的,流程会很长,看起来没有逻辑,又很冗余。

jxm的博客 2157

CMake之Option使用简介

CMake中的option用于控制编译流程,相当于C语言中的宏条件编译。 基本格式 options基本格式如下: option(<variable> "<help_text>" [value]) variable:定义选项名称 help_text:说明选项的含义 value:定义选项默认状态,一般是OFF或者ON,除去ON之外,其他所有值都为认为是OFF。 示例 示例项目结构如下: build:工程编译目录 CMakeList.txt:cmake主编译脚本 sub:子工程目

飞翔de刺猬 3万+

【SpringBoot香樟转转】debugDay01

在学黑马程序员的苍穹外卖项目,刚开始学,想用maven编译一下代码,结果报错,找不到符号。本着先理解原则,看着能找到这个变量呀。

m0_72696598的博客 1737

TBOX(Telematics Box)在智能网联汽车中的核心功能与应用场景解析

TBOX(Telematics Box)是智能网联汽车的“中枢神经”,基于Android或Linux操作系统,并通过CAN总线与车辆深度交互。它实现了远程控制、车辆状态监控、OTA升级及紧急呼叫(E-CALL)等核心功能,是提升用车安全、便利性与实现车辆持续进化的关键技术组件。

weixin_29158413的博客 804

CMAKE中OPTION语法

可以用 set 改写帮助文本或默认值,但注意不要无意覆盖用户通过命令行设定的值。可通过 GUI、ccmake 或命令行 -D VAR=ON/OFF 覆盖。option 仅适合二值 ON/OFF。或使用 CMakePresets.json 提供更结构化的预设。option(<VAR> "说明文本" [ON|OFF])在 CMake 配置阶段提供一个 ON/OFF 的布尔开关。生成的变量是普通缓存变量(CACHE BOOL)与 CACHE 变量的关系。根据选项启用功能/目标。命令行优先:在配置时。

m0_37706292的博客 464

Python批量注册脚本开发详细

开发一个Python批量注册脚本需要考虑多个方面,包括目标网站的注册流程、验证码处理、请求发送、数据存储等。以下是一个详细的开发流程和代码示例,用于实现基本的批量注册功能。

nsp202505的博客 3346

R语言基础学习记录4:重要函数

时间: 2018-07-18(学习) 2018-07-22(学习记录) 教程:慕课网 《R语言基础》 讲师:Angelayuan 补充内容: R语言常用函数总结大全 、 gl()函数 https://blog.youkuaiyun.com/wzgl__wh/article/details/61499027 https://blog.youkuaiyun.com/neweastsun/article/detail...

woooooood的博客 6570

从GAN生成失败案例出发:为什么你的AI画不准位置?CoordConv保姆级解决方案

本文深入探讨了GAN生成图像时位置偏移问题的根源,并提供了CoordConv的保姆级解决方案。通过分析传统CNN在空间坐标建模上的缺陷,详细介绍了CoordConv的原理、实现步骤及在StyleGAN2等模型中的实战应用,显著提升了医学图像生成等任务的定位精度。

pp12345的博客 204

告别迷茫!手把手教你用Altova XMLSpy编写EtherCAT从站ESI文件(附避坑指南)

本文详细介绍了如何使用Altova XMLSpy高效编写EtherCAT从站ESI文件,涵盖核心架构、通信通道配置、过程数据映射等关键步骤,并提供了常见问题排查与性能优化建议。通过实战案例和避坑指南,帮助工程师快速掌握EtherCAT从站开发技巧,提升工作效率。

weixin_42570484的博客 395

谈谈如何学习R语言基础教程

谈谈如何学习R语言 一、谈谈R语言的历史 R语言的前身是S语言,那么S语言又是什么呢?S语言是由贝尔实验室开发出来的一种用来进行数据探索、统计分析、数据可视化的一门解释性语言。 R语言由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两人共同发明,由于二者名字中都以R开头,所以这门语言就被命名为R语言了。顺便再提一个对R语言有着突出贡献的人,统计学家哈德利·维克汉姆(Hadley Wickham),如果没有他,绝对不会有R语言蓬勃发展的如今。维克汉姆是 RStudio 的首席科学家

weixin_44298740的博客 2001

【无机纳米材料科研制图——OriginLab 0205】Origin对BET吸附/脱附曲线及孔径分布制图...

此篇,我们来分享如何对BET数据进行处理和制图。 一、等温吸脱附曲线绘制 1)找到等温吸脱附文件。 一半来说,对一个样品测一次BET,会产生很多数据,具体因仪器而异。我这里的数据主要有两个文件夹,一个脱附,一个吸附,吸附文件夹中多了一个等温吸脱附的文件夹。而这...

XD_Yangf的博客 803

R语言基础学习笔记

 学习R语言笔记: 参考书籍:《R语言入门教程》、《R语言初学者指南》

Tall2Dolphin的专栏 6806

大模型——Dify:知识库与外部知识库

摘要 Dify的知识库功能为开发者提供了动态知识管理解决方案,超越了大模型静态预训练数据的限制。知识库支持多种文档格式(如txt、pdf、docx等),通过文档分段、索引设置和检索优化机制提升LLM的响应准确性。系统提供高质量和经济两种索引模式,前者采用向量化检索技术,后者使用关键词匹配以降低成本。知识库支持元数据管理,包括自动生成的内置元数据和用户自定义元数据,便于内容分类和检索。对于高级需求,Dify还支持连接外部知识库,通过API实现跨平台数据共享和检索优化,满足企业级知识管理需求。

732

手把手教你学 Simulink (1.3)--Simulink 的模块库及其模块介绍

Simulink 提供了丰富的模块库,涵盖了从基本的信号生成和处理到复杂的数学运算和系统建模的各种功能。通过熟悉这些模块库及其模块,你可以更高效地构建和仿真动态系统。

MHD0815的博客 5150

R语言基础入门(学习笔记通俗易懂版)

适用生信、医学等相关专业,R语言基础入门(个人学习通俗易懂版)

qq_74093550的博客 10万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

R语言基础| 机器学习

R语言中基础的机器学习主要有:分类、聚类、降维、回归(预测,自变量和因变量)这积累问题。拿到数据和问题首先要会判定是这4类中的哪一种。此前我们也用专门的教程介绍过在。

weixin_47195452的博客 1992

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

D02-R语言基础学习

R语言基础学习——D02 20190423内容纲要:   1、前言   2、向量操作     (1)常规操作     (2)不定长向量计算     (3)序列     (4)向量的删除与保留   3、列表详解     (1)列表的索引     (2)列表得元素属性     (3)更改列表元素     (4)删除列表元素     (5)合并两个列表  ...

weixin_30566063的博客 333

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

R语言基础学习(一)

R语言学习同样需要循序渐进,每个编程语言都有其独特的功能和优点,但是其背后的逻辑和思路也许是一脉相承的,能够从一个语言的身上看到另一个语言的影子,包括后续的语法也可能是我们十分熟悉的样式。所以我们不仅学习一门语言,更是学习一种思想,编程的思想,汇编的思想,逻辑上的思想,希望大家学有收获。学习之初内容可能有或多或少的问题,有不对的地方欢迎指正,水平有限,一同学习!

zc_253536的博客 1361

R语言基础(用最简单的方式了解学习R语言)

心灵导语:沮丧的感觉是由大脑的懒造成的,它在提示你放弃做这么难的事情,去找些容易或有趣的事情来做。 学习编程也一样,大脑越是感到沮丧,你越应该鞭策自己去战胜沮丧。认识到这一点之后,在学习编程的过程中,如果遇到了令人沮丧的难题,要乐观积极地对待这样的感觉:因为你是在挑战自我。如果每天都能挑战自己一点点,可以预见,不用多久你就会成为一名信心满满的程序员。 R和RStudio安装包下载地址——>点这里下载 学习R语言目的: 学习如何加载数据,组合与拆解数据对象,玩转R的系统环境,编写自己的R函数,以及使用

sjjsaaaa的博客 5486

学习笔记:R语言基础

R语言是一种开源的统计计算和图形制作环境,它不仅提供了全面的数据处理能力,还具备强大的数组运算工具,尤其在向量和矩阵运算上表现出色。此外,R语言内置了丰富的统计分析方法,并拥有卓越的统计图表绘制功能。更关键的是,R语言提供了一种灵活且功能强大的编程语言,使得用户能够自由地进行数据操作、输入输出控制以及自定义函数,以满足各种复杂的数据分析需求。

howard2005的专栏 2301

D01-R语言基础学习

R语言基础学习——D01 20190410内容纲要:   1、R的下载与安装   2、R包的安装与使用方法     (1)查看已安装的包     (2)查看是否安装过包     (3)安装包     (4)更新包   3、结果的重用   4、R处理大数据集   5、R的数据结构     (1)向量     (2)矩阵     (3)数组     (4)...

weixin_30287169的博客 416
上一篇: python动态导入模块、函数、类、对象
下一篇: 伽罗瓦理论(1)
math_computer
博客等级 码龄8年 43粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值