R语言的数据结构-向量

【图书推荐】《R语言医学数据分析实践》-CSDN博客

《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com)

R语言编程_夏天又到了的博客-CSDN博客

在R语言中,数据结构是非常关键的部分,它提供了多种内置的数据结构类型,如向量、列表、矩阵、数据框等。这些数据结构的选择取决于我们要处理的数据类型以及所需进行的操作。掌握不同类型的数据结构,可以帮助我们更有效地分析和处理数据,编写出高效、清晰的R代码。

本节将介绍R语言中常用的数据结构,包括它们的特点、用法和示例。通过学习这些数据结构,读者将能更好地利用R语言进行数据分析和建模工作。

2.1.1  向量

在R语言中,向量最基本的数据类型,也是R语言的核心,用于存储同一类型的元素。向量是R语言中最常用的数据结构之一,它的简单性和灵活性使其在数据分析和可视化过程中得到广泛应用。通过熟练使用向量,可以更加高效地处理和操作数据。

向量可以包含数值、字符、逻辑值等元素。在R语言中,可以使用c()函数创建一个向量。c()函数是R语言中常用的函数之一,也是最基本的函数之一。它的功能非常强大,可以将多个由逗号分隔的参数“链接”在一起,形成一个向量、列表或矩阵等结构,使用起来具有很高的灵活性。

R代码如下所示,通过在c()中输入不同的数据,分别生成了数值、字符和逻辑型向量:

Age <- c(21,22,23,24,25)    	#数值型向量,逗号隔开
Age <- c(21:25)               	#数值型向量,可以用21:25表示21~25的5个数
Gender <- c("man","woman")   	#字符型向量,数据要加双引号
Effect <- c(TRUE,FALSE,T,F)  	#逻辑型向量,T是TRUE的简写,F是FALSE的简写

当我们创建一个向量后,如何对向量的内容进行修改呢?这包括向量元素的提取、替换、删除和添加。首先,向量元素的提取可以使用方括号([])进行索引。如图2-1所示,想知道Age向量中第2个元素的内容,可以使用“Age[2]”进行查看;当想要替换第2个元素的内容时,可以直接以索引方式赋值,如通过“Age[2] <-26”将第2个元素替换为“26”;当想要删除第2个元素的内容时,可以使用负号方式进行删除,如“Age[-2]”;当想要在向量中添加元素时,比如想在第2个元素与第3个元素中间添加元素27,可以使用“c(Age[1:2],27,Age[3:5])”进行操作。

图2-1

如何判断一个向量类型呢?我们可以使用mode()函数或者typeof()函数查看向量类型。当向量元素同时含有数值型与字符型时,返回结果为字符型;当向量元素同时含有数值型与逻辑型时,返回结果为数值型;当向量元素同时含有数值型、逻辑型与字符型时,返回结果为字符型。总结一下,逻辑型可以转换为数值型与字符型,其中FALSE转变为0,TRUE转变为1;数值型可以转换为字符型,而字符型不可以转换为逻辑型与数值型。可以使用as.character()和as.numeric()把向量强制转换为字符型和数值型。R代码如下所示:

Age<-c(21,22,23,24,25,">70")
mode(Age)                	#合并数值型和字符型的向量,返回结果是字符型
Age<-c(21,22,23,24,25,TRUE,FALSE)
mode(Age)                	#合并数值型和逻辑型的向量,返回结果是数值型
Age<-c(21,22,23,24,25,">70",TRUE)  
mode(Age)                	#合并数值型、字符型和逻辑型的向量,返回结果是字符型
Age<-c(21,22,23,24,25,TRUE,FALSE)
as.character(Age)      	#将Age强制转换为字符型
as.numeric(Age)         	#将Age强制转换为数值型
Age<-c("<18","18-70",">70")   
mode(Age)                	#尝试把字符型向量Age强制转换为数值型
as.numeric(Age)

示例代码的运行结果如图2-2所示。

图2-2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63832.shtml

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

相关文章

集成方案 | Docusign + 泛微,实现全流程电子化签署!

本文将详细介绍 Docusign 与泛微的集成步骤及其效果&#xff0c;并通过实际应用场景来展示 Docusign 的强大集成能力&#xff0c;以证明 Docusign 集成功能的高效性和实用性。 在现代企业运营中&#xff0c;效率和合规性是至关重要的。泛微作为企业级办公自动化和流程管理的解决…

Docker Compose应用实战

文章目录 1、使用Docker Compose必要性及定义2、Docker Compose应用参考资料3、Docker Compose应用最佳实践步骤1_概念2_步骤 4、Docker Compose安装5、Docker Compose应用案例1_网站文件准备2_Dockerfile文件准备3_Compose文件准备4_使用docker-compose up启动容器5_访问6_常见…

51c大模型~合集88

我自己的原文哦~ https://blog.51cto.com/whaosoft/12805165 #Number Cookbook 数字比你想得更复杂——一文带你了解大模型数字处理能力的方方面面 目前大语言模型&#xff08;Large Language Models, LLMs&#xff09;的推理能力备受关注。从思维链&#xff08;Chain of…

STP(生成树协议)

STP的基本概念 概述 STP是一个用于局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路&#xff0c;并对某些接口进行阻塞以消除环路。STP在网络中运行后会持续监控网络的状态&#xff0c;当网络出现拓扑变更时&#xff0c;STP能够感知并且进行自动…

GLM-4-Plus初体验

引言&#xff1a;为什么高效的内容创作如此重要&#xff1f; 在当前竞争激烈的市场环境中&#xff0c;内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子&#xff0c;还是制作广告&#xff0c;优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…

Jetpack Compose赋能:以速破局,高效打造非凡应用

Android Compose 是谷歌推出的一种现代化 UI 框架&#xff0c;基于 Kotlin 编程语言&#xff0c;旨在简化和加速 Android 应用开发。它以声明式编程为核心&#xff0c;与传统的 View 系统相比&#xff0c;Compose 提供了更直观、更简洁的开发体验。以下是对 Android Compose 的…

MinerU:PDF文档提取工具

目录 docker一键启动本地配置下载模型权重文件demo.py使用命令行启动GPU使用情况 wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile docker build -t mineru:latest .docker一键启动 有点问题&#xff0c;晚点更新 本地配置 就是在Python环境中配置依赖和…

UE4_控件蓝图_制作3D生命血条

一&#xff1a;效果图如下&#xff1a; 二、实现步骤&#xff1a; 1、新建敌人 右键蓝图类 选择角色&#xff0c; 重命名为BP_Enemytest。 双击打开&#xff0c;配置敌人网格体 修改位置及朝向 效果如下&#xff1a; 选择合适的动画蓝图类&#xff1a; 人物就有了动作&#x…

【深度学习】深刻理解ViT

ViT&#xff08;Vision Transformer&#xff09;是谷歌研究团队于2020年提出的一种新型图像识别模型&#xff0c;首次将Transformer架构成功应用于计算机视觉任务中。Transformer最初应用于自然语言处理&#xff08;如BERT和GPT&#xff09;&#xff0c;而ViT展示了其在视觉任务…

用于日语词汇学习的微信小程序+ssm

日语词汇学习小程序是高校人才培养计划的重要组成部分&#xff0c;是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。本学生所在学院多采用半手工管理日语词汇学习小程序的方式&#xff0c;所以有必要开发日语词汇…

ichunqiu-2024年春秋杯网络安全联赛夏季赛-brother

1.打开题目&#xff0c;看到题目我就想到了再后面加一个ls&#xff0c;结果回显了ls&#xff0c;然后又想到会不会是模板注入&#xff0c;尝试{{7*7}}&#xff0c;然后页面返回了49&#xff0c;说明存在模板注入 如下&#xff0c;判定为模板注入 看一下系统环境配置 然后看可…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 数据处理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 数据处理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

QT从入门到精通——Qlabel介绍与使用

1. QT介绍——代码测试 Qt 是一个跨平台的应用程序开发框架&#xff0c;广泛用于开发图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;也支持非图形应用程序的开发。Qt 提供了一套工具和库&#xff0c;使得开发者能够高效地构建高性能、可移植的应用程序。以下是…

Edge SCDN深度解析,边缘安全加速的创新实践

边缘安全加速&#xff08;Edge Secure Content Delivery Network&#xff0c;SCDN&#xff09;是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术&#xff0c;智能调度使用户就近获取所需内容&#xff0c;为…

WebRTC Simulcast 大小流介绍与优化实践

Simulcast 是 WebRTC 中的一种标准化技术 &#xff0c;简称大小流。通过 Simulcast&#xff0c;客户端可以同时发送同一视频的多个版本。每个版本都以不同的分辨率和帧率独立编码&#xff0c;带宽较多的拉流端可以接收较高质量的视频流&#xff0c;带宽有限的拉流端则可以接收较…

40分钟学 Go 语言高并发:服务监控与追踪

服务监控与追踪 一、知识要点总览 模块核心内容技术选型难度监控指标请求量、响应时间、错误率、资源使用Prometheus Grafana中链路追踪分布式调用链、性能瓶颈分析Jaeger, OpenTelemetry高日志处理日志收集、分析、存储ELK Stack中告警系统告警规则、通知渠道、告警分级Ale…

vue3 使用 konva

1&#xff1a;安装 npm install vue-konva konva --save 在main.ts 里面引入 import VueKonva from vue-konva; app.use(VueKonva); 2&#xff1a;效果图 3&#xff1a;直接粘贴复制就能用你 &#xff08;重要的地方做了备注&#xff09; <template><div st…

Spring Boot集成Knife4j文档工具

Knife4j 搭建 Knife4j环境的的搭建和Swagger一样都比较简单&#xff0c;只需要极简的配置即可。 maven依赖 我使用的是较高版本的基于openapi规范的依赖包&#xff0c;OpenAPI2(Swagger)规范是Knife4j之前一直提供支持的版本&#xff0c;底层依赖框架为Springfox。 此次在4…

keil5搜索框还有左侧文件状态栏不见的问题

点击上面的window&#xff0c;弹出 reset view to default &#xff0c;然后点击&#xff0c;再点击reset&#xff0c;就ok了

基于Mybatis,MybatisPlus实现数据库查询分页功能

基于Mybatis&#xff0c;MybatisPlus实现数据库查询分页功能 目录 基于Mybatis&#xff0c;MybatisPlus实现数据库查询分页功能使用Mybatis插件实现分页数据库准备分页插件配置和使用常用数据&#xff1a; 使用MybatisPlus插件实现分页数据库准备分页插件配置和使用自定义分页查…