R语言——变量
参考资料:学习R
1、类
R中所有变量都有一个类,表明此变量属于什么类型。例如,大部分的数字是numeric类,逻辑值是logical类。其实,因为R没有标量类型(scalar type),所以更严格地我说,数字向量应该是numeric类,逻辑向量是logical类。
我们可以使用class(my_variable)来找出变量的类名,如下:
所有变量除了类之外,还有一个内部存储类型、一个模式、一个存储模式,但在实际中我们需要使用对象的类即可。
2、不同类型的数字
R中包含三种不同类型的数值变量:浮点值numeric、整数integer和复数complex。我们可以检查变量的类型class把它们分辨出来:
class(sqrt(1:10))
# i用于创建复数的虚部
class(3+1i)
# 尽管只有一个数字,也是一个numeric类
class(1)
# 冒号操作符返回的值是numeric类
class(0.5:4.5)
# 当所有值是整数时返回整数类型
class(1:5)
3、其他通用类
除了我们已知的数字类和逻辑值,向量还有其他三个类,它们分别是:用于存储文本的字符character,存储类别数据的因子factor,以及比较少见的存储二进制数据的原始值raw。
R语言不区分整个字符串和单个字符——只包含一个字符的字符串与其他字符串的处理相同。
在许多编程语言中,类别数据用整数表示。例如,gender 中用 1 来代表 female,2 代表male。 稍好的办法是把 gender 当作带有“female” 和“male” 选项的字符变量。 然而,因为类别数据与传统的纯文本是不同的概念, 所以从语义上看这仍然不妥。 R 找到了一种更有效的方法, 把这两种方法整合到一个语义正确的类里面——因子(factor), 即拥有标签的整数:
因子的内容看起来与它们所对应的字符一样——这样每个值都能得到一个可读性很好的标签。这些标签被限制在称为因子水平(levels of the factor)的特定值中(本例中为“female”和“male”)
gender<-factor(c("male","female","female","male","female"))
gender
levels(gender)
nlevels(gender)
as.integer(gender)
请注意,即使“male”是gender中的第一个值,第一个水平仍然是“female”。默认情况下,因子水平按字符顺序分配。
在底层,因子的值被存储为整数而非字符串,我们可以调用as.integer清楚的看到。采取整数而非字符文本的存储方式,令内存的使用非常高效,尤其当出现大量重复字符串时。如果我们再夸张一点,生成 10 000 个随机的 gender 值(使用 sample 函数对字符串“female” 和“male” 随机采样 10 000 次并使用 replace 选项),可以看到,一个因子包含的值比同等字符占用更少的内存。在以下代码中,sample 返回一个字符向量( 这是使用as.factor 转换而成的),而 object.size 则返回每个对象的内存分配大小。
gender_char<-sample(c("female","male"),10000,replace=TRUE)
gender_fac<-as.factor(gender_char)
object.size(gender_char)
object.size(gender_fac)
当操作因子水平的内容时(常见的例子是:清理命名,例如,把所有男性字符统一为“male”,而非“Male”),最好先把因子转换成字符串后再处理,以便充分利用字符串操作函数。可以使用as.character函数完成转换:
4、检查和更改类
直接在命令提示符下,以交互的方式键入类class的函数名来检查变量是很有用的。但是如果现在脚本中测试对象的类型,则最好用is函数,或针对某个类写的特定函数。通常我们会做这样测试:
大部分的类都会有自己的is.*函数。通常,直接调用它们比使用通用is函数稍显高效。
例如:
我们可以使用以下命令来查看所有的is函数:
在这个命令中,ls列出所有的变量名,"^is"是一个正则表达式,它意味着“匹配所有以is开头的字符串”,而baseenv函数则返回base包中所有的环境。
有时候,我们想改变一个对象的类型,这就是所谓的转型(casting),大部分的is函数都有与之对应的as函数。尽可能使用特定的as.*函数而不使用as函数,因为它们通常更有效,而且往往针对该类会有额外的逻辑。
5、检查变量
挡在控制台输入一个运算或变量时,结果就会被打印出来,因为R隐式调用了对象的print函数。所以再命令提示符下输入1+1与print(1+1)是一样的。
对于内循环函数来说,自动打印功能不起作用,我们必须显式地调用print:
除了查看变量的打印输出,最好我们可以看到某种程度的对象汇总信息。summary函数就能为不同的数据类型提供汇总信息。例如,数值变量会被汇总统计出平均数、中位数,以及一些分位数。在下例中,runif函数生成30个平均分布于0和1之间的随机数:
类别变量和逻辑变量将根据每个值得计算进行汇总。在下例中,letters是一个内置的常数,它包含了从a到z的小写值(大写的LETTERS则包含了类似的从A到Z的大写值)。这里letters[1:5]用索引限制letters的范围为从a到e。sample函数使用重复抽样随机抽取30次。
fac<-as.factor(sample(letters[1:5],30,replace=TRUE))
summary(fac)bool<-sample(c(TRUE,FALSE,NA),30,replace=TRUE)
summary(bool)
多维对象与矩阵及数据框一样,都是通过列来汇总的。下面创建一个数据框:
dfr<-data.frame(num,fac,bool)
# 查看前几行
head(dfr)
# 胡数据框的summary函数就行是对每列调用summary一样
summary(dfr)
类似地,str函数能显示对象的结构。str函数对数据框和嵌套列表非常有用。
如前所述,每个类都有自己的打印(print)方法,以控制如何显示到控制台。有时,这种打印模糊了其内部结构,或忽略了一些有用的信息。用unclass函数可以绕开这一点,显示变量时如何构建的。例如,对因子调用unclass函数会显示它仅是一个整数向量,拥有一个叫levels的属性。
attributes函数能显示当前对象的所有属性列表:
6、工作区
工作时,我们往往想知道已经创建的变量及其内容。用ls函数即可列出现有变量的名称。默认情况下,变量名以.开头的是隐藏文件。要查看它们,可传入all.names=TRUE参数。
工作一段时间后,尤其是在数据挖掘中,工作区会变得相当凌乱,我们可以使用rm函数删除变量来清理区间:
rm(list=ls())要慎用。会删除所有变量
相关文章:
R语言——变量
参考资料:学习R 1、类 R中所有变量都有一个类,表明此变量属于什么类型。例如,大部分的数字是numeric类,逻辑值是logical类。其实,因为R没有标量类型(scalar type),所以更严格地我说…...
Appium使用文档
Appium旨在支持许多不同平台(移动端、网页端、桌面端等)的UI自动化。不仅如此,它还旨在支持用不同语言(JS、Java、Python等)编写的自动化代码。 Appium移动端自动化要求如下: 安装Appium安装UiAutomator2…...
Houdini :《哪吒2》神话与科技碰撞的创新之旅
《哪吒2》(即《哪吒之魔童闹海》)截止至今日,荣登全球票房榜第五。根据猫眼专业版数据,截至2025年3月15日,《哪吒2》全球累计票房(含预售及海外)超过150.19亿元,超越《星球大战&…...
单台openEuler24.03 LTS下的开源大数据环境搭建
目录 概述 准备 虚拟机基本设置 关闭及禁用防火墙 修改主机名 静态ip 映射主机名 创建普通用户 SSH免密登录 目录准备 安装Java 下载Java 解压 设置环境变量 安装Hadoop 下载hadoop 解压 设置环境变量 查看版本 配置hadoop 配置hadoop_env.sh 配置core-s…...
HarmonyOS开发,深拷贝、浅拷贝的封装和调用
在 HarmonyOS 开发中,实现深拷贝和浅拷贝可以通过封装工具类来完成。下面分别介绍浅拷贝和深拷贝的实现方式,并将它们封装成一个工具类。 浅拷贝和深拷贝的区别 浅拷贝:创建一个新对象,新对象的属性引用原始对象的属性。也就是说…...
C 环境设置指南
C 环境设置指南 引言 C语言作为一种历史悠久且功能强大的编程语言,在软件开发和系统编程领域占有举足轻重的地位。C语言环境设置是进行C语言编程的第一步,也是确保编程顺利进行的关键。本文将详细介绍C语言环境的设置过程,包括系统要求、开发工具的选择、环境变量的配置等…...
2018年全国职业院校技能大赛高职组-计算机网络应用竞赛竞赛样题E卷
目录 总体规划 模块二:设备基础信息配置 模块三:网络搭建与网络冗余备份方案部署 模块四:移动互联网搭建与网优 模块五:出口安全防护与远程接入 总体规划 医院在进行网络部分信息化建设方案设计过程中,需要保证医院、血液中心通过社保网进行互连互通,同时满足献血中心与医…...
大华HTTP协议在智联视频超融合平台中的接入方法
一. 大华HTTP协议介绍 大华HTTP协议是大华股份(Dahua Technology)为其安防监控设备开发的一套基于HTTP/HTTPS的通信协议,主要用于设备与客户端(如PC、手机、服务器)之间的数据交互。该协议支持设备管理、视频流获取、…...
Dify Docker 私有化部署遇到的问题
Dify 版本为1.01,本地使用 docker desktop,版本为4.38.0 (181591),以下是Dify部署及使用过程中遇到的问题,后续持续更新... db无法启动,一直提示:Permissions should be urwx (0700) or urwx,grx (0750).具…...
Python学习第十九天
Django-分页 后端分页 Django提供了Paginator类来实现后端分页。Paginator类可以将一个查询集(QuerySet)分成多个页面,每个页面包含指定数量的对象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…...
大数据技术链路详解
随着大数据技术的不断发展,各种新兴技术层出不穷,今天我们就来详细拆解一条完整的大数据链路,看看每个环节都有哪些最新技术参与,以及它们如何发挥作用。 一、数据采集层 在大数据处理的第一步,数据采集至关重要。现代…...
vue computed 计算属性简述
Vue 的 计算属性(Computed Properties) 是 Vue 实例中一种特殊的属性,用于声明式地定义依赖其他数据动态计算得出的值。它的核心优势在于能够自动追踪依赖关系,并缓存计算结果,避免重复计算,提升性…...
365天之第P10周:Pytorch实现车牌识别
365天之第P10周:Pytorch实现车牌识别 Pytorch实现车牌识别 365天之第P10周:Pytorch实现车牌识别一、导入数据1.获取类别名2. 数据可视化3. 标签数字化4. 加载数据文件5. 划分数据 二、自建模型三、 训练模型1. 优化器与损失函数2. 模型训练 四、 结果分析…...
【Docker】-Docker Compose+Dockerfile最佳实践
最佳实践 在实际生产环境中,Docker Compose Dockerfile 的最佳实践通常包括以下几部分: 使用 Dockerfile 构建微服务镜像使用 docker-compose.yml 管理多个微服务使用 volumes 进行数据持久化使用 networks 进行服务间通信使用 depends_on 确保依赖服…...
TSB - AD 解读 — 迈向可靠、透明的 TSAD 任务
目录 一 文章动机 二 TSAD 领域内的两类缺陷 三 数据集的构建 四 实验结果及结论 项目宣传链接:TSB-AD 代码链接: TheDatumOrg/TSB-AD: TSB-AD: Towards A Reliable Time-Series Anomaly Detection Benchmark 原作者解读:NeurIPS 2…...
Linux 入门:权限的认识和学习
目录 一.shell命令以及运行原理 二.Linux权限的概念 1.Linux下两种用户 cannot open directory .: Permission denied 问题 2.Linux权限管理 1).是什么 2).为什么(权限角色目标权限属性) 3).文件访问者的分类(角色) 4).文…...
多任务学习与持续学习微调:深入探索大型语言模型的性能与适应性
引言 大型语言模型(LLMs)的出现极大地推动了自然语言处理领域的发展。为了使其在各种特定任务和动态环境中表现出色,微调技术至关重要。本节将深入探讨多任务学习(Multi-task Learning, MTL)和持续学习(Co…...
Cocos Creator Shader入门实战(四):预处理宏定义和Chunk
引擎: 3.8.5 您好,我是鹤九日! 回顾 学习Shader,前期是让人烦躁无味的,后期可能就是各种的逻辑让人抓耳挠腮。 一成不变的内容:遵循引擎设定的规则,理解引擎要求的规范。 这里,简单…...
[蓝桥杯 2023 省 B] 飞机降落
[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D i D_{i} Di 个单位时间,即它最早可以于 T i T_{i} Ti 时刻…...
STAR Decomposition 一种针对极端事件的信号分解方法 论文精读加复现
STAR 分解🚀 在时序预测任务中,为了情绪化信号的各种成分,例如趋势信息季节信息等往往都需要对信号进行分解。目前熟知的分解方式有很多种,经验模态分解 EMD 变分模态分解 VMD ,还有 集合经验模态分解 EEMD,…...
matlab中如何集成使用python
在 MATLAB 中集成使用 Python 可以通过调用 Python 脚本或函数来实现。MATLAB 提供了 py 模块来直接调用 Python 代码。以下是一个简单的示例,展示如何在 MATLAB 中调用 Python 函数。 示例:在 MATLAB 中调用 Python 函数 1. 编写 Python 函数 首先&a…...
使用matlab求伴随矩阵
已知三阶方阵: 计算行列式det 计算逆矩阵inv 如何det不等于0,伴随矩阵 行列式det*逆矩阵inv >> A[1 0 0;1 1 -1;-2 0 3]A 1 0 01 1 -1-2 0 3>> det(A)ans 3>> >> A_invinv(A)A_inv 1.0000 …...
音视频处理的“瑞士军刀”与“积木”:FFmpeg 与 GStreamer 的深度揭秘
一、发展历史与生态演进对比 FFmpeg的成长轨迹 诞生背景:2000年由Fabrice Bellard创建,最初为解决视频编码标准化问题而生。早期版本仅支持MPEG-1编码,但凭借开源社区协作,迅速扩展为全格式编解码工具。技术扩张:2004年…...
Debezium日常分享系列之:Debezium 3.1.0.Beta1发布
Debezium日常分享系列之:Debezium 3.1.0.Beta1发布 新特性和改进Debezium 平台的首次发布Percona 的最小锁定新的 Oracle 源信息 SCN 和时间戳字段Vitess Epoch/零日期列解析的变化Vitess 二进制排序的 tiny、medium 和 long 文本列的变化CloudEvent traceparent 支…...
智能汽车图像及视频处理方案,支持视频智能剪辑能力
在智能科技日新月异的今天,汽车已不仅仅是代步工具,它们正逐步进化为集出行、娱乐、生活于一体的智能移动空间。在这场汽车行业的智能化变革中,美摄科技以其卓越的智能汽车图像及视频处理方案,引领了一场前所未有的视觉盛宴&#…...
《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 持续更新》
承接上文Linux 进程的创建、终止、等待与程序替换保姆级讲解-CSDN博客,涉及所用到的代码,本文所绑定的资源就是上篇文章的主要代码。 完整代码在文章末尾 目录 1.实现编写代码输出一个命令行 a.如何获取自己的用户名,主机名,路径…...
postgresql 高版本pgsql备份在低版本pgsql中恢复失败,报错:“unsupported version”
关键字 PostgreSQL、pg_restore、版本兼容性、数据库迁移、pg_dump、备份恢复、unsupported version in file header 背景环境 系统配置 环境类型操作系统PostgreSQL版本内存工具链测试环境Windows 111616GBNavicat/PgAdmin生产环境Windows Server 2012 R2128GBPgAdmin/命令…...
裸机开发-GPIO外设
重新开始学ZYNQ开发,学完上linux系统 基础知识:ZYNQ 的三种GPIO :MIO、EMIO、AXI - FPGA/ASIC技术 - 电子发烧友网 GPIO是ZYNQ PS端的一个IO外设,用于观测(input)和控制(output)器…...
STM32——独立看门狗(IWDG)
IWDG 简介 独立看门狗本质上是一个 定时器 ,这个定时器有一个输出端,可以输出复位信号。该定时器是一个 12 位的递减计数器 ,当计数器的值减到 0 的时候,就会产生一个复位信号。如果 在计 数没减到 0 之前,重置计…...
使用STM32CubeMX+DMA+空闲中断实现串口接收和发送数据(STM32G070CBT6)
1.STM32CubeMX配置 (1)配置SYS (2)配置RCC (3)配置串口,此处我用的是串口4,其他串口也是一样的 (4)配置DMA,将串口4的TX和RX添加到DMA中 &#…...
连续出现的字符(信息学奥赛一本通-1148)
【题目描述】 给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。 【输入】 第一行包含一个正整数k,表示至少需要连续出现的次数。1 ≤ k ≤ 1000。 第二行包含需要查找的字符串。字符串长度在1到2500之间,且不包含任何空白符。 【…...
matlab 正态分布
目录 一、概述1、参数2、概率密度函数3、累积分布函数二、代码案例1、拟合正态分布对象2、估计参数3、计算并绘制正态分布的概率密度函数4、绘制标准正态分布的正态累积分布函数5、比较 gamma 和正态分布的概率密度函数6、正态分布和对数正态分布之间的关系7、比较 Student t 和…...
C# MVC项目部署II后错误,403禁止访问:访问被拒绝问题处理
C# MVC项目部署II后错误,403禁止访问:访问被拒绝问题处理 问题如下: 解决办法: 1. 应用程序池要选v4.xx,托管模式选“集成” 2. 把asp.net 4.xx安装在iis上,方法: cd \Windows\Microsoft .NE…...
有趣的算法实践:整数反转与回文检测(Java实现)
题目描述:整数反转与回文检测 要求实现两个功能: 将输入的整数反转(保留符号,如输入-123返回-321)判断反转后的数是否为回文数(正反读相同) 示例: 输入:123 → 反转结…...
数学建模:MATLAB循环神经网络
一、简述 1.循环神经网络 循环神经网络(RNN)是一种用于处理序列数据的神经网络。不同于传统的前馈神经网络,RNN在隐藏层中加入了自反馈连接,使得网络能够对序列中的每个元素执行相同的操作,同时保持一个“记忆”状态…...
东隆科技携手PRIMES成立中国校准实验室,开启激光诊断高精度新时代
3月12日,上海慕尼黑光博会期间,东隆科技正式宣布与德国PRIMES共同成立“中国校准实验室”。这一重要合作标志着东隆科技在本地化服务领域的优势与PRIMES在激光光束诊断领域的顶尖技术深度融合,旨在为中国客户提供更快速、更高精度的服务以及本…...
【MySQL】B树和B+树的区别?MySQL为什么选用B+树作为索引数据结构?
B树和B树的区别: 结构方面: 1.节点存储内容: B树: 节点同时存储索引和数据。B树:只有叶子节点存储数据记录或指向数据记录的指针,非叶子节点只存键值,用于索引。 B 树的非叶子节点可以存储更…...
使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示,代码仅仅有2个html文件和一个python文件,真正做到了用最简洁的代码实现复杂功能。 测试通过环境: windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.2…...
Cursor的使用感受,帮你使用好自动化编程工具,整理笔记
使用感受 说实话,我觉得cursor还是好用的,可能我刚开始使用,没有使用的非常的熟练,运用也没有非常的透彻,总体体验还是不错的,在使用它时,我优先考虑,前端页面功能复用的时候&#…...
2024浙江大学计算机考研上机真题
2024浙江大学计算机考研上机真题 2024浙江大学计算机考研复试上机真题 2024浙江大学计算机考研机试真题 2024浙江大学计算机考研复试机试真题 历年浙江大学计算机复试上机真题 历年浙江大学计算机复试机试真题 2024浙江大学计算机复试上机真题 2024浙江大学计算机复试机试真题 …...
JS逆向:通达OA Office Anywhere 2019 的前端密码加密逆向分析,并使用Python构建通达OA登录
免责声明 本文仅为技术研究与渗透测试思路分享,旨在帮助安全从业人员更好地理解相关技术原理和防御措施。任何个人或组织不得利用本文内容从事非法活动或攻击他人系统。 如果任何人因违反法律法规或不当使用本文内容而导致任何法律后果,本文作者概不负责。 请务必遵守法律…...
贴吧ip什么意思?贴吧ip可以查到姓名吗
贴吧作为百度旗下的一个重要社区平台,一直以来都吸引着大量用户进行交流和讨论。然而,随着网络环境的日益复杂,用户的隐私保护问题也日益凸显。其中,贴吧IP地址的显示及其与个人信息的关系,成为不少用户关注的焦点。本…...
【css酷炫效果】纯CSS实现进度条加载动画
【css酷炫效果】纯CSS实现进度条加载动画 缘创作背景html结构css样式完整代码基础版进阶版 效果图 通过CSS渐变与背景位移动画,无需JavaScript即可创建流体动态进度条。 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u…...
【后端开发面试题】每日 3 题(十三)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:https://blog.csdn.net/newin2020/category_12903849.html 📚专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家,每天的题目都是独…...
【Android Studio】解决遇到的一些问题
目录 前言 一、Invalid Gradle JDK configuration found. Open Gradle Settings Change JDK location 报错场景 解决方法 二、adb 不是内部或外部命令,也不是可运行的程序或批处理文件。 报错场景 解决方法 前言 Android Studio的安装过程,可以参…...
UnitTest框架管理测试用例——python自动化测试
UnitTest框架 UnitTest是Python自带一个单元测试框架,常用它来做单元测试。 注意:对于测试来说,UnitTest框架的作用是 自动化脚本(用例代码)执行框架————(使用UnitTest框架来管理 运行多个测试用例的) 为什么使用UnitTest框架 能够组织多个用例去执…...
后端接口开发完成后,接口地址访问不到提示404,Spring项目的包结构错误
后端接口开发完成后,接口地址访问不到提示404,Spring项目的包结构错误 是因为包结构错误,导致无法在请求地址下找到对应的方法,原来错误的包结构(自建controller、service、config等包建到了项目包之外、而非项目包之下…...
算法竞赛-基础算法-位运算
目录 1.快速幂 2.快速乘 3.lowbit(n) 4.其他 5.相关题目 6.小结 引言:位运算的主要特点之一是在二进制表示下不进位,一下为一些基础的位运算操作: 与或非异或and,&or,|not,~xor 1.快速幂 快速幂的计算原理就是基于位运算&#x…...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能📚页面效果📚指令输入�…...
深入解析音频编解码器(Audio CODEC):硬件、接口与驱动开发
音频编解码器(Audio CODEC)是音频处理系统中的核心组件,负责 模拟信号与数字信号的相互转换,广泛应用于 智能音箱、嵌入式系统、消费电子产品 等设备。本篇文章将从 硬件结构、接口解析、驱动开发 和 软件配置 等方面,…...