当前位置: 首页 > news >正文

【R语言】基础知识

一、对象与变量

R语言中的所有事物都是对象,如向量、列表、函数,变量、甚至环境等。它的所有代码都是基于对象object的操作,变量只是调用对象的手段。

1、对象

在R语言中,对计算机内存的访问是通过对象实现的。

# 字符型向量
c('重庆','成都','贵州')# 只有1个元素的数值型向量
c(1) 
# 或直接写成如下形式
1# 列表
list(c('重庆','成都','贵州'), c(2),"你好!")# 函数
function(x,y){x + y^2
}# 环境
new.env()

2、变量

R语言对大小写敏感。

变量名称可以通过使用 . 来分开小写字母:variable.name;也可以使用首字母大写的方式:variableName.

# 变量的赋值操作
# 第一种方法
a <- 5
5 -> a
# 第二种方法
a = 5# 可以将一个值同时赋给多个变量
x <- y <- z <- 78# 第三种方法. assign函数赋值更适合于在循环中
assign('a', 20)

3、变量的列举与删除

ls()函数

all.names参数

如果想查看隐藏的变量(变量名称以.开头),可以将all.names参数置为TRUE:

 pattern参数

在此参数中可以使用正则表达式。

 ls.str()函数

用于依次输出变量名称和结构。

browseEnv()函数

也可提供与ls.str()类似的功能,只不过它的输出结果为HTML格式。

remove()函数

缩写成rm(),用于删除变量。

# 删除变量x
rm(x)

 若要删除当前环境的所有变量,则需要将参数list设置为ls()

# 删除当前环境所有变量
rm(list=ls())

二、数据类型

1、常用的数据类型

数值型numeric、字符型character、逻辑性logical、复数型complex

数值型又分为整数型integer、双精度型double

typeof()函数

查看数据类型。

或者直接判断是否属于某种数据类型:

2、特殊值

 5种特殊值:它们可以通过is.null()、is.na()、is.nan()、is.infinite()函数来判断是否为对应的特殊值。

  1. NULL:表示变量为空。
  2. NAN:双精度型;not a number;表示相应的计算是没有数学意义或者是不能正常执行的。
  3. NA:属于字符型;not available;表示缺失值
  4. Inf:双精度型;表示正无穷
  5. -Inf:双精度型;表示负无穷

以下是几个示例: 

三、数据结构

 常见的数据结构:向量、矩阵、数组、因子、列表和数据框

1、向量

向量是R语言中最核心、最基础的数据结构。

向量是一组数据类型相同的元素组成的序列,元素可以是数值型、字符型、逻辑型、复数型,按照元素的数据类型不同,便分为相应的类型:数值型向量、字符型向量……

标量

R语言中的标量是一个只有1个元素,或者长度为1的向量。

# a是一个标量
a <- 2length(a) # 1is.vector(a) # TRUE

数值型向量

R语言默认数值是双精度型。使用c()函数创建:

将x,y连接在一起,得到新的向量z。

numeric()、integer()、double()函数

创建由0组成的指定长度的向量。

生成相邻元素相差1或者-1(步长)的序列,通过 “:” 来实现(“:” 运算符其实也是一个函数,它是seq()函数的一个特例)

创建从2到50,且步长为4的序列:

创建起点为10,长度为20,且步长为2的序列

字符型向量

 全部由字符串组成。

比较字符向量中处于相同位置的元素是否相等。因为a的长度为1,b的长度为4,R语言会自动按照循环补齐的方式进行比较。

逻辑型向量

全部由逻辑值TURE(简写成T)和FALSE(简写成F)组成。

2、向量元素命名

R语言中,可以给向量的每个元素命名。在创建向量时使用name=value为其元素指定名称;若向量已经创建,可通过names()函数命名。

读取向量元素的名称

 3、向量子集

提取向量子集是通过方括号 [] 实现的。

注意:R语言中向量元素的起始位置是1,而不是0.

创建一个含有26个大写字母的向量c: 

 通过正整数提取子集:

若正整数重复了1次,则元素也会重复1次

若为小数,先扔掉小数部分,然后提取子集

 

通过负整数提取不包含相应元素的子集

不能同时包含正整数与负整数

 

通过元素名称提取子集

 

 4、向量的强制转换

显式强制转换

使用as.numeric()、as.integer()、as.double()、as.character()、as.logical()等函数将向量转换为相应数据类型的向量。

隐式强制转换

R语言根据当前具体运算情况和数据类型的灵活性,自动将一种类型的向量转换成另一种更灵活的向量。

数据类型的灵活性从低到高排序:逻辑型、整数型、双精度型和字符型

逻辑型只能被隐式转换成其它数据类型,当逻辑型被强制转换为整数型或双精度型时,TRUE会转换成1,FLASE会转换成0;

数值型的数据将被隐式强制转换成字符型数据。

显示强制转换:

隐式强制转换:

http://www.lryc.cn/news/503385.html

相关文章:

  • 【一本通】虫洞
  • python爬虫--小白篇【爬虫实践】
  • Unity背包道具拖拽(极简版实现)
  • spark读取普通文件
  • MySQL SQL语句性能优化
  • 【蓝桥杯每日一题】技能升级
  • css 实现在一条线上流动小物体(offset-path)
  • 探索 Robyn 框架 —— 下一代高性能 Web 框架
  • STL容器-map P3613【深基15.例2】寄包柜 普及-
  • 【MySQL 进阶之路】了解 性能优化 与 设计原则
  • MySQL之数据库三大范式
  • [大数据]Hudi
  • jenkins harbor安装
  • JavaScript 高级特性与 ES6 新特性:正则表达式的深度探索
  • 正则表达式——参考视频B站《奇乐编程学院》
  • 【FFmpeg】FFmpeg 内存结构 ⑥ ( 搭建开发环境 | AVPacket 创建与释放代码分析 | AVPacket 内存使用注意事项 )
  • 【多模态文档智能】OCR-free感知多模态大模型技术链路及训练数据细节
  • Mybatis动态sql执行过程
  • leetcode 31 Next Permutation
  • 每日一练 | 华为 eSight 创建的缺省角色
  • PyTorch基本使用-自动微分模块
  • libevent-Reactor设计模式【1】
  • 奇奇怪怪的错误-Tag和space不兼容
  • 29.攻防世界ics-06
  • 强化学习路径规划:基于SARSA算法的移动机器人路径规划,可以更改地图大小及起始点,可以自定义障碍物,MATLAB代码
  • 【MFC】如何读取rtf文件并进行展示
  • Vulhub:Log4j[漏洞复现]
  • 面向预测性维护的TinyML技术栈全面综述
  • 沈阳理工大学《2024年811自动控制原理真题》 (完整版)
  • 用前端html如何实现2024烟花效果