新闻详情

新闻详情

首页 / 资讯中心 / 详情

R语言向量语法的详细教程

发布时间:2026/10/2 12:49:07来源:尧图网络
R语言向量语法的详细教程
在R语言中向量Vector是最基础、最核心的数据结构。R语言中的几乎所有标量单个数字或字符在底层都是作为长度为1的向量存在的。理解向量的运作机制是精通R语言的关键。以下是R语言向量语法的详细教程大全。一、 向量的创建 (Creating Vectors)在R中向量是一维的并且只能包含同一种基本数据类型。1. 使用c()函数拼接c()是 concatenate连接的缩写是最常用的创建向量的方法。# 创建数值型向量v_num-c(1,2.5,4.8,10)# 创建字符型向量v_chr-c(Apple,Banana,Cherry)# 创建逻辑型向量v_logi-c(TRUE,FALSE,TRUE,TRUE)2. 使用:生成连续整数序列v_seq1-1:10# 包含 1 到 10 的整数v_seq2-10:1# 递减序列10, 9, 8... 1v_seq3-2.5:8.5# 生成 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.53. 使用seq()函数生成等差数列seq()提供了比:更高的自由度。# seq(from, to, by) - by表示步长seq(1,10,by2)# 返回: 1 3 5 7 9# seq(from, to, length.out) - 指定生成的元素总个数seq(0,1,length.out5)# 返回: 0.00 0.25 0.50 0.75 1.004. 使用rep()函数生成重复序列# rep(x, times) - 整体重复rep(c(1,2),times3)# 返回: 1 2 1 2 1 2# rep(x, each) - 逐个元素重复rep(c(1,2),each3)# 返回: 1 1 1 2 2 2# 结合使用rep(c(A,B),each2,times2)# 返回: A A B B A A B B二、 向量的数据类型与强制转换向量要求所有元素类型一致。如果用c()拼接不同类型的元素R会自动进行隐式强制类型转换Coercion。1. 隐式转换规则转换优先级从低到高低优先级会被转换为高优先级逻辑型 (Logical) - 整型 (Integer) - 数值型 (Numeric) - 字符型 (Character)c(TRUE,10)# TRUE 被转为 1结果为数值型向量: 1 10c(3.14,R)# 3.14 被转为字符结果为字符型向量: 3.14 Rc(FALSE,2L,A)# 全部转为字符型: FALSE 2 A2. 显式类型转换你可以使用as.*()族函数强制改变向量的类型。x-c(12.5,8,99)as.numeric(x)# 转为数值: 12.5 8.0 99.0y-c(0,1,-5)as.logical(y)# 0转为FALSE所有非0值转为TRUE: FALSE TRUE TRUE三、 为向量元素命名你可以为向量的每一个元素指定一个名称这在数据提取时非常有用。# 方法1创建时直接命名scores-c(Math90,English85,History88)# 方法2使用 names() 函数后期命名ages-c(25,30,22)names(ages)-c(Alice,Bob,Charlie)# 查看向量的名称names(scores)# 返回: Math English History# 清除命名names(ages)-NULL四、 向量的索引与提取 (Subsetting)注意R语言的索引是从 1 开始的不是 0。使用方括号[]进行索引提取。1. 正整数索引提取v-c(10,20,30,40,50)v[1]# 提取第1个元素: 10v[c(1,3,5)]# 提取第1, 3, 5个元素: 10 30 50v[2:4]# 提取第2到第4个元素: 20 30 402. 负整数索引剔除v[-1]# 提取除了第1个元素之外的所有元素: 20 30 40 50v[c(-1,-5)]# 剔除第1和第5个元素: 20 30 40# 注意不能在同一个中括号里混用正整数和负整数例如 v[c(1, -2)] 会报错。3. 名称索引如果向量有名称可以直接按名称提取。scores-c(Math90,English85,History88)scores[English]# 返回 85scores[c(Math,History)]# 返回 90 884. 逻辑向量索引极其重要根据条件筛选元素是R语言数据清洗的核心技巧。v-c(15,8,22,5,30)# 返回一个逻辑向量: TRUE FALSE TRUE FALSE TRUEv10# 将逻辑向量放入中括号R会提取对应位置为 TRUE 的元素v[v10]# 筛选出大于10的元素: 15 22 30# 复合条件 (与 或 |)v[v10v25]# 筛选出大于10且小于25的元素: 15 22五、 向量化运算与循环补齐 (Recycling Rule)R语言针对向量运算进行了深度优化你不需要写for循环就可以对所有元素进行计算。1. 向量与标量的运算v-c(1,2,3,4)v*10# 每一个元素都乘以10: 10 20 30 40v5# 每一个元素都加5: 6 7 8 92. 向量与向量的运算长度相同v1-c(1,2,3)v2-c(10,20,30)v1v2# 对应位置元素相加: 11 22 333. 循环补齐规则 (Recycling)当两个不同长度的向量进行运算时较短的向量会被重复使用循环直到与较长的向量长度一致。v_long-c(1,2,3,4,5,6)v_short-c(10,100)v_longv_short# v_short 会被隐式补齐为: c(10, 100, 10, 100, 10, 100)# 结果为: 11 102 13 104 15 106注如果长向量的长度不是短向量长度的整数倍R会执行运算但会弹出一个警告信息 (Warning message)。六、 常用向量操作函数族1. 基础信息查询length(v)返回向量的长度元素个数。class(v)返回向量的数据类型。typeof(v)返回更底层的类型如把 numeric 分为 double 和 integer。2. 统计与数学计算sum(v)求和。mean(v)求平均值。max(v),min(v)求最大、最小值。sd(v),var(v)求标准差、方差。summary(v)提供最小值、四分位数、均值、最大值的综合统计摘要。3. 排序与顺序sort(v)对向量的值进行排序默认升序降序用sort(v, decreasing TRUE)。order(v)返回向量排序后的索引值非常常用于数据框按某列排序。rev(v)将向量元素首尾反转。4. 元素查找与去重unique(v)去除重复元素返回唯一值。table(v)进行频数统计返回每个不同元素出现的次数。which(v 10)返回满足条件的元素的索引位置而不是元素本身。match(v1, v2)或%in%查找v1中的元素是否在v2中。c(A,C)%in%c(A,B,C,D)# 返回: TRUE TRUE七、 向量中的缺失值 (NA) 处理在实际数据中经常会遇到缺失值。在R中缺失值用NA(Not Available) 表示。1. 识别缺失值绝对不能用v NA来判断缺失值因为缺失值和任何值比较的结果依然是缺失值NA。必须使用is.na()函数。v-c(1,2,NA,4,5)is.na(v)# 返回: FALSE FALSE TRUE FALSE FALSEv[!is.na(v)]# 提取所有非缺失值元素: 1 2 4 5 (这里用到了 ! 逻辑取反)2. 计算时的na.rm参数大多数统计函数如果遇到向量包含NA默认会直接返回NA。为了跳过缺失值进行计算需要添加参数na.rm TRUE。v-c(10,20,NA,30)sum(v)# 返回: NAsum(v,na.rmTRUE)# 忽略NA返回: 60
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

江森自控楼宇自动化控制培训:从PPT到BA系统落地实战指南 2026/10/2 13:30:43

江森自控楼宇自动化控制培训:从PPT到BA系统落地实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OpenShell实战:跨平台终端交互增强层,打造统一命令行效率工作流 2026/10/2 13:30:30

OpenShell实战:跨平台终端交互增强层,打造统一命令行效率工作流

最近我一直在折腾命令行效率工具,OpenShell 这个开源项目成了我终端工作流里的常驻成员。简单说,OpenShell 是一个跨平台、可扩展的开源终端增强方案,它在传统 Shell 和现代终端模拟器之间补上了一个很关键的空位:让你用一套可配置…

阅读更多 →
刚刚,OpenClaw 2.0来了,龙虾升级:用 SQLite 与 CLI 把本地模型接进 TaoToken 2026/10/2 13:30:30

刚刚,OpenClaw 2.0来了,龙虾升级:用 SQLite 与 CLI 把本地模型接进 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
【agent】OpenHarness 配置 openai 授权:把 auth.json 改到 TaoToken 的完整实操 2026/10/2 13:30:29

【agent】OpenHarness 配置 openai 授权:把 auth.json 改到 TaoToken 的完整实操

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
douyin-downloader 抖音批量下载与去水印使用指南:5 分钟跑通第一个下载 2026/10/2 13:30:03

douyin-downloader 抖音批量下载与去水印使用指南:5 分钟跑通第一个下载

douyin-downloader 抖音批量下载与去水印使用指南:5 分钟跑通第一个下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and brows…

阅读更多 →
best-of-ml-python 2023-11-16 周报解读:评分体系、趋势信号与上榜机器学习项目全解析 2026/10/2 13:30:02

best-of-ml-python 2023-11-16 周报解读:评分体系、趋势信号与上榜机器学习项目全解析

文档知识库机器学习 【免费下载链接】best-of-ml-python 🏆 A ranked list of awesome machine learning Python libraries. Updated weekly. 项目地址: https://gitcode.com/GitHub_Trending/be/best-of-ml-python 点击查看 免费下载 这份周更快照 his…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉