【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.mzph.cn/bicheng/64017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBug】lombok插件中@Data不能生成get和set方法

一&#xff1a;问题引入 可以看到我们在类UserInfo上写了Data注解&#xff0c;但是在测试文件中生成的反编译target文件Us二Info中没有get和set方法 二&#xff1a;解决方法 1&#xff1a;Spring升级问题&#xff08;解决了我的问题&#xff09; 原因是Spring官方进行了升级…

Java版-图论-最短路-Floyd算法

实现描述 网络延迟时间示例 根据上面提示&#xff0c;可以计算出&#xff0c;最大有100个点&#xff0c;最大耗时为100*wi,即最大的耗时为10000&#xff0c;任何耗时计算出来超过这个值可以理解为不可达了&#xff1b;从而得出实现代码里面的&#xff1a; int maxTime 10005…

STM32 CubeMx HAL库 独立看门狗IWDG配置使用

看门狗这里我就不多介绍了&#xff0c;能搜到这篇文章说明你了解 总之就是一个单片机重启程序&#xff0c;设定好超时时间&#xff0c;在超时时间内没有喂狗&#xff0c;单片机就会复位 主要应用在单片机异常重启方面&#xff0c;比如程序跑飞&#xff08;注意程序跑飞时你就…

uni-app实现小程序、H5图片轮播预览、双指缩放、双击放大、单击还原、滑动切换功能

前言 这次的标题有点长&#xff0c;主要是想要表述的功能点有点多&#xff1b; 简单做一下需求描述 产品要求在商品详情页的头部轮播图部分&#xff0c;可以单击预览大图&#xff0c;同时在预览界面可以双指放大缩小图片并且可以移动查看图片&#xff0c;双击放大&#xff0…

【Hive】-- hive 3.1.3 伪分布式部署(单节点)

1、环境准备 1.1、版本选择 apache hive 3.1.3 apache hadoop 3.1.0 oracle jdk 1.8 mysql 8.0.15 操作系统:Mac os 10.151.2、软件下载 https://archive.apache.org/dist/hive/ https://archive.apache.org/dist/hadoop/ 1.3、解压 tar -zxvf apache-hive-4.0.0-bin.tar…

Java报错Communications link failure

"Communications link failure" 是一个常见的错误提示&#xff0c;通常与数据库连接问题有关&#xff0c;尤其是在使用 Java 应用程序时连接 MySQL 或其他数据库时。以下是一些可能的原因及解决方法&#xff1a; 可能原因&#xff1a; 数据库服务未启动&#xff1a;…

备注的英语及英语简称

一、 备注的英文及英语简称如下&#xff1a; 英文&#xff1a;remark&#xff1b;note&#xff1b;comment&#xff1b;caption&#xff1b; annotation。简称&#xff1a;rmk&#xff1b;note&#xff1b;cmt&#xff1b;cap&#xff1b;anno。 备注的英文表达 1. Remark&a…

SpringBoot Scan作用记录

‌ServletComponentScan‌ ServletComponentScan‌是Spring框架提供的一个注解,用于扫描并注册Servlet、Filter和Listener组件。这个注解使得Spring能够自动检测和管理这些组件,而无需在web.xml中手动配置,从而简化项目的配置和管理‌ @ServletComponentScan注解被添加到主…

3D 生成重建035-DiffRF直接生成nerf

3D 生成重建035-DiffRF直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 本文提出了一种基于渲染引导的三维辐射场扩散新方法DiffRF&#xff0c;用于高质量的三维辐射场合成。现有的方法通常难以生成具有细致纹理和几何细节的三维模型&#xff0c;并且容易出…

求解球面的一组正交标架

目录 求解球面的一组正交标架 求解球面的一组正交标架 球面 r ( u , v ) ( a cos ⁡ u cos ⁡ v , a cos ⁡ u sin ⁡ v , a sin ⁡ u ) \mathbf{r}(u,v)\left(a\cos u\cos v,a\cos u\sin v,a\sin u\right) r(u,v)(acosucosv,acosusinv,asinu), 求得 r u ( − a sin ⁡ u c…

中国计算机学会计算机视觉专委会携手合合信息举办企业交流活动,为AI安全治理打开“新思路”

近期&#xff0c;《咬文嚼字》杂志发布了2024年度十大流行语&#xff0c;“智能向善”位列其中&#xff0c;过去一年时间里&#xff0c;深度伪造、AI诈骗等话题屡次登上热搜&#xff0c;AI技术“野蛮生长”引发公众担忧。今年9月&#xff0c;全国网络安全标准化技术委员会发布了…

【系统思辨】两难与虚假两难

怎么做都不好 前面有两条路&#xff0c;做事情有两种方法&#xff0c;也就是说有两种可能的选择&#xff0c;无论哪一种选择&#xff0c;都有利有弊&#xff0c;让人们处于进退维谷的困境。这类问题的特征就是&#xff0c;无论你的决定是什么&#xff0c;都会失去另一半&#…

详解多租户架构下的资源隔离模式

文章目录 0.简介1.多租户概念1.1 基本概念1.2 单租户 vs 多租户 2.实现方案2.1 独立数据库方案2.1.1 优点2.1.2 缺点2.1.3 应用场景 2.2 共享数据库&#xff0c;独立 Schema2.2.1 优点2.2.2 缺点2.2.3 应用场景 2.3 共享数据库、共享Schema、共享表2.3.1 优点2.3.2 缺点2.3.3 应…

SMMU软件指南SMMU编程之寄存器

安全之安全(security)博客目录导读 本博客介绍了SMMUv3的编程接口&#xff1a; • SMMU寄存器 • 流表&#xff08;Stream table&#xff09; • CD&#xff08;Context Descriptor&#xff09; • 事件队列&#xff08;Event queue&#xff09; • 命令队列&#xff08;…

分布式 窗口算法 总结

前言 相关系列 《分布式 & 目录》《分布式 & 窗口算法 & 总结》《分布式 & 窗口算法 & 问题》 参考文献 《【算法】令牌桶算法》 固定窗口算法 简介 固定窗口算法是最简单的流量控制算法。固定窗口算法的核心原理是将系统的生命周期划分为一个个…

SEC_ASA 第二天作业

拓扑 按照拓扑图配置 NTP&#xff0c;Server端为 Outside路由器&#xff0c;Client端为 ASA&#xff0c;两个设备的 NTP传输使用MD5做校验。&#xff08;安全 V4 LAB考点&#xff09; 提示&#xff1a;Outside路由器作为 Server端要配置好正确的时间和时区&#xff0c;ASA防…

JAVA实战:借助阿里云实现短信发送功能

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…

【电力负荷预测实例】采用新英格兰2024年最新电力负荷数据的XGBoost电力负荷预测模型

与小编上篇文章介绍的基于BPNN神经网络的电力负荷预测相比较&#xff0c;两种模型的负荷预测方法各有优势&#xff0c;神经网络能够自动提取特征并处理非线性关系&#xff0c;而XGBoost则具有预测精度高、运行速率快和可解释性强的特点。在实际应用中&#xff0c;可以根据具体需…

数据库数据恢复—ORACLE常见故障有哪些?如何恢复数据?

Oracle数据库常见故障表现&#xff1a; 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。 Oracle数据库数据恢复方案&#xff1a; 1、检测存放数据库的服务器/存储设备是否存…

题目 3000: 交换值

题目 3000: 交换值 时间限制: 2s 内存限制: 192MB 提交: 5409 解决: 3331 题目描述 输入两个正整数a和b&#xff0c;试交换a、b的值&#xff08;使a的值等于b&#xff0c;b的值等于a&#xff09;。 输入格式 输入两个正整数a和b。 输出格式 输出a与b交换值后的结果。 样例输入 …