【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()函数来判断是否为对应的特殊值。
- NULL:表示变量为空。
- NAN:双精度型;not a number;表示相应的计算是没有数学意义或者是不能正常执行的。
- NA:属于字符型;not available;表示缺失值
- Inf:双精度型;表示正无穷
- -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;
数值型的数据将被隐式强制转换成字符型数据。
显示强制转换:
隐式强制转换:
相关文章:

【R语言】基础知识
一、对象与变量 R语言中的所有事物都是对象,如向量、列表、函数,变量、甚至环境等。它的所有代码都是基于对象object的操作,变量只是调用对象的手段。 1、对象 在R语言中,对计算机内存的访问是通过对象实现的。 # 字符型向量 …...

【一本通】虫洞
【一本通】虫洞 C语言代码C代码JAVA代码 💐The Begin💐点点关注,收藏不迷路💐 John在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之…...

python爬虫--小白篇【爬虫实践】
一、前言 1.1、王者荣耀皮肤爬虫 根据王者荣耀链接,将王者荣耀的全部英雄的全部皮肤图片爬取保存到本地。经过分析得到任务的三个步骤: 根据首页全部英雄列表连接获取全部英雄的名称hero_name以及对应的hero_id;根据单个英雄的hero_name和h…...

Unity背包道具拖拽(极简版实现)
(感觉Csdn代码页面可以再大一点或者加个放大功能 不然得划着看不太舒服) 1.关键接口,三个拖拽相关的 2.关键参数,PointerEventData 一直没仔细看过,其实有包含鼠标相关的很多参数,鼠标点击次数ÿ…...

spark读取普通文件
spark读取普通文件 txt文件 """ 将一行数据当做一个字段,需要自己切割 字段名称为value 表结构 可以从sql中搞 """ df spark.read.text("../../data/wordcount/input/data.txt") df spark.read.format("text"…...

MySQL SQL语句性能优化
MySQL SQL语句性能优化指南 一、查询设计优化1. 避免 SELECT *2. 使用 WHERE 进行条件过滤3. 避免在索引列上使用函数和表达式4. 使用 LIMIT 限制返回行数5. 避免使用子查询6. 优化 JOIN 操作7. 避免全表扫描 二、索引优化1. 使用合适的索引2. 覆盖索引3. 索引选择性4. 多列索引…...

【蓝桥杯每日一题】技能升级
技能升级 2024-12-10 蓝桥杯每日一题 技能升级 二分 题目大意 一个角色有 N 种可以增加攻击力的技能,对于第 i 个技能首次升级可以提升 A i A_i Ai 点攻击力,随后的每次升级增加的攻击力都会减少 B i B_i Bi 。升级 ⌈ A i B i ⌉ \lceil \frac{A…...

css 实现在一条线上流动小物体(offset-path)
直接贴代码,留几个参考网址给大家 【SVG】路径<Path>标签详解,一次搞懂所有命令参数 探秘神奇的运动路径动画 Motion Path <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport&quo…...

探索 Robyn 框架 —— 下一代高性能 Web 框架
技术博客:探索 Robyn 框架 —— 下一代高性能 Web 框架 什么是 Robyn? Robyn 是一个用 Rust 编写的高性能 Web 框架,旨在通过极简设计和高效并发处理,帮助开发者快速构建可扩展的现代 Web 应用。得益于 Rust 的内存安全性和性能…...

STL容器-map P3613【深基15.例2】寄包柜 普及-
题目来源:洛谷题库 文章目录 map例题map知识点map使用注意:map的常用用法 map例题 P3613【深基15.例2】寄包柜 普及- 题意 根据数据插入/查询 思路 map键值对可以根据柜子编号查找物品,但是柜子又有很多个,考虑数组或者map数组…...

【MySQL 进阶之路】了解 性能优化 与 设计原则
1.B树的优势 “矮胖”结构: 矮:B树的每个节点存储更多的关键字,从而减少了树的层级(最多三层),减少了磁盘I/O操作,提高了查询效率。胖:叶子节点存储实际的数据,并使用双…...

MySQL之数据库三大范式
一、什么是范式? 范式是数据库遵循设计时遵循的一种规范,不同的规范要求遵循不同的范式。 (范式是具有最小冗余的表结构) 范式可以 提高数据的一致性和 减少数据冗余和 更新异常的问题 数据库有六种范式(1NF/2NF/3NF…...

[大数据]Hudi
G:\Bigdata\17.hudi\大数据技术之数据湖Hudi 第1章 Hudi概述 1.1 Hudi简介 Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服…...

jenkins harbor安装
Harbor是一个企业级Docker镜像仓库。 文章目录 1. 什么是Docker私有仓库2. Docker有哪些私有仓库3. Harbor简介4. Harbor安装 1. 什么是Docker私有仓库 Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Dock…...

JavaScript 高级特性与 ES6 新特性:正则表达式的深度探索
在现代 JavaScript 开发中,正则表达式(Regular Expressions)和高级特性、ES6 新特性的结合使用,能够极大地提升代码的简洁性、可读性和功能性。本文将深入探讨 JavaScript 中的正则表达式及其在高级特性和 ES6 新特性中的应用&…...

正则表达式——参考视频B站《奇乐编程学院》
智能指针 一、背景🎈1.1. 模式匹配🎈1.2. 文本替换🎈1.3. 数据验证🎈1.4. 信息提取🎈1.5. 拆分字符串🎈1.6. 高级搜索功能 二、原料2.1 参考视频2.2 验证网址 三、用法3.1 限定符3.1.1 ?3.1.2 *3.1.3 3.1.…...

【FFmpeg】FFmpeg 内存结构 ⑥ ( 搭建开发环境 | AVPacket 创建与释放代码分析 | AVPacket 内存使用注意事项 )
文章目录 一、搭建开发环境1、开发环境搭建参考2、项目搭建 二、AVPacket 创建与释放代码分析1、AVPacket 创建与释放代码2、Qt 单步调试方法3、单步调试 - 分析 AVPacket 创建与销毁代码 三、AVPacket 内存使用注意事项1、谨慎使用 av_init_packet 函数2、av_init_packet 函数…...

【多模态文档智能】OCR-free感知多模态大模型技术链路及训练数据细节
目前的一些多模态大模型的工作倾向于使用MLLM进行推理任务,然而,纯OCR任务偏向于模型的感知能力,对于文档场景,由于文字密度较高,现有方法往往通过增加图像token的数量来提升性能。这种策略在增加新的语言时࿰…...

Mybatis动态sql执行过程
动态SQL的执行原理主要涉及到在运行时根据条件动态地生成SQL语句,然后将其发送给数据库执行。以下是动态SQL执行原理的详细解释: 一、接收参数 动态SQL首先会根据用户的输入或系统的条件接收参数。这些参数可以是查询条件、更新数据等,它们…...

leetcode 31 Next Permutation
题意 找到下一个permutation是什么,对于一个数组[1,2,3],下一个排列就是[1, 3, 2] 链接 https://leetcode.com/problems/next-permutation/ 思考 首先任何一个permutation满足一个性质,从某个位置往后一定是降序。…...

每日一练 | 华为 eSight 创建的缺省角色
01 真题题目 下列选项中,不属于华为 eSight 创建的缺省角色的是: A. Administrator B. Monitor C. Operator D. End-User 02 真题答案 D 03 答案解析 华为 eSight 是一款综合性的网络管理平台,提供了多种管理和监控功能。 为了确保不同用…...

PyTorch基本使用-自动微分模块
学习目的:掌握自动微分模块的使用 训练神经网络时,最常用的算法就是反向传播。在该算法中,参数(模型权重)会根据损失函数关于对应参数的梯度进行调整。为了计算这些梯度,PyTorch 内置了名为 torch.autogra…...

libevent-Reactor设计模式【1】
一、Libevent概述 1、简介 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大&#…...

奇奇怪怪的错误-Tag和space不兼容
报错信息如下: TabError: inconsistent use of tabs and spaces in indentation make: *** [Makefile:24: train] Error 1不能按Tab,要老老实实按space 不过可以在编辑器里面改,把它们调整成一致的;...

29.攻防世界ics-06
ics-06 难度:1 方向:Web 题目描述: 云平台报表中心收集了设备管理基础服务的数据,但是数据被删除了,只有一处留下了入侵者的痕迹。 进入靶场 发现有一处能点动 多了个id1 我其实尝试改过id数,不过没什么变化…...

强化学习路径规划:基于SARSA算法的移动机器人路径规划,可以更改地图大小及起始点,可以自定义障碍物,MATLAB代码
一、SARSA算法概述 SARSA(State-Action-Reward-State-Action)是一种在线强化学习算法,用于解决决策问题,特别是在部分可观测的马尔可夫决策过程(POMDPs)中。SARSA算法的核心思想是通过与环境的交互来学习一…...

【MFC】如何读取rtf文件并进行展示
tf是微软的一个带格式的文件,比word简单,我们可以用写字板等程序打开编辑。下面以具体实例讲解如何在自己程序中展示rtf文件。 首先使用VS2022创建一个MFC的工程。 VIEW类需要选择richview类,用于展示,如下图: 运行效…...

Vulhub:Log4j[漏洞复现]
CVE-2017-5645(Log4j反序列化) 启动靶场环境 docker-compose up -d 靶机IPV4地址 ifconfig | grep eth0 -A 5 ┌──(root㉿kali)-[/home/kali/Desktop/temp] └─# ifconfig | grep eth0 -A 5 eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 in…...

面向预测性维护的TinyML技术栈全面综述
论文标题:A Holistic Review of the TinyML Stack for Predictive Maintenance(面向预测性维护的TinyML技术栈全面综述) 作者信息:Emil Njor, Mohammad Amin Hasanpour, Jan Madsen, Xenofon Fafoutis,均来自丹麦技术…...

沈阳理工大学《2024年811自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《沈阳理工大学811自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题...