当前位置: 首页 > news >正文

R语言基础(持续更新中

一、数据结构

1. 标量

单个数值 / 字符 / 逻辑值(TRUE, FALSE),也即只含一个元素的向量。

2. 向量

类型相同(数值 / 字符 / 逻辑值)的多个元素的组合,也即一维数组。利用函数c()构建向量,通过索引访问向量中的元素。

> v <- c(1,2,3,4) > v [1] 1 2 3 4 > v[1] [1] 1 > v[c(1,2)] [1] 1 2 > v[1:3] [1] 1 2 3

3. 矩阵

要求元素类型相同,也即二维数组。使用函数 matrix() 创建矩阵。

> m <- matrix( + data = c(1,2,3,4), + nrow = 2, + ncol = 2, + byrow = TRUE, + dimnames=list(c("r1","r2"),c("c1","c2")) + ) > m c1 c2 r1 1 2 r2 3 4 > m[1,2] [1] 2 > m[1,] c1 c2 1 2

4. 数组

元素类型相同的维度可以 >2 的矩阵。使用函数 array() 构造数组。

> a <- array( + data = 1:6, + dim = c(2,3), + dimnames = list(c("a1","a2"),c("b1","b2","b3")) + ) > a b1 b2 b3 a1 1 3 5 a2 2 4 6 > a[1,3] [1] 5 > a[,2] a1 a2 3 4

5. 数据框

用于存储表格数据。每列表示一个变量,每行代表一条观测记录。每一列的数据类型可以不同,但长度必须相同。使用函数 data.frame() 创建数据框。

> id <- c(1,2,3) > name <- c("a","b","c") > df <- data.frame(id,name) > df id name 1 1 a 2 2 b 3 3 c > df[3,2] [1] "c" > df[,2] [1] "a" "b" "c" > df$name [1] "a" "b" "c"

6. 列表

任意数据结构的任意组合。使用函数 list() 构建列表。

> num <- 3 > name <- c("a","b","c") > l <- list(num,name) > l [[1]] [1] 3 [[2]] [1] "a" "b" "c" > l[1] [[1]] [1] 3 > l[2] [[1]] [1] "a" "b" "c"

7. 常用数据结构对比

数据结构维度元素类型要求创建函数典型用途
向量一维类型相同(数值/字符/逻辑值)c()存储同类型数据序列,如数值向量、字符向量
矩阵二维元素类型相同matrix()数学运算、图像处理、二维数据存储
数据框二维(行×列)每列类型可不同,但长度必须相同data.frame()存储表格数据,统计分析,数据清洗
列表一维(但元素可为任意结构)无要求,可包含任意类型list()存储复杂、异构数据,函数返回多个结果

二. 常用符号

1.<-— 赋值运算符

在 RStudio 中的快捷键为:Alt + -。<-是 R 语言中最常用的赋值符号,用于将右边的值赋给左边的变量。虽然 R 也支持用=赋值,但<-是 R 社区推荐的标准写法,因为:

  • =在函数参数中有其他含义(参数传递),容易混淆
  • <-更清晰地表达了"赋值"的方向性
id <- 101 # 将 101 赋值给 id name <- "Alice" # 将字符串赋值给 name

2.%>%— 管道运算符

在 RStudio 中的快捷键为:Ctrl + Shift + M。%>%来自magrittr包,也被dplyr/tidyverse自动加载,它的作用是将左边的结果作为右边函数的第一个参数传入,实现链式调用。

补充:从 R 4.1.0 起,R 内置了功能类似的原生管道符|>。

library(dplyr) #不用管道 — 嵌套写法,可读性差 filter(select(demographics, subjid, age), age > 18) #使用管道 — 链式写法,清晰易读 demographics %>% select(subjid, age) %>% filter(age > 18)
http://www.jsqmd.com/news/1176323/

相关文章:

  • PHP-Antimalware-Scanner性能优化:大规模项目扫描的10个技巧
  • Gatsby静态网站生成器深度指南:Kent C. Dodds个人网站技术栈分析
  • AHK-v2-script-converter核心功能解析:3种GUI转换模式深度解析
  • PixiEditor:免费跨平台2D图形编辑器的终极解决方案
  • 2026年7月最新亨得利官方钟表服务中心|网点地址与官方客服热线权威信息公示 - 亨得利官方博客
  • 2026年最新教程:图片转PDF怎么调整顺序 亲测好用的免费方法 - 效率工具研究所
  • Qwen2.5-VL-3B-Instruct-AWQ:轻量级多模态AI的工业级实战指南
  • 5分钟快速上手Lucky:软硬路由公网神器的终极使用指南
  • 从单张图片到沉浸式3D视频:Stability AI的SV3D技术深度解析
  • ARIA验证器测试完全指南:如何确保无障碍代码的正确性
  • AI 驱动 Forg365 钓鱼平台针对 Microsoft 365 攻击机制与防御研究
  • 2026 西安黄金回收|金条名包高效变现四大小技巧详解 - 全国二奢机构参考
  • NNSVS recipes全解析:利用预制脚本快速复现研究成果
  • Seed-VC语音转换终极指南:零样本克隆技术完全解析
  • YPrompt:解锁精准AI对话的智能提示词解决方案
  • AI Agent 自动发帖、互动、舆情分析全流程拆解(企业级私有化部署实录)
  • 宁波海曙区白云街道亨得利官方钟表服务中心电话公示(2026年7月最新) - 亨得利官方
  • Word 自动目录格式深度定制:5个关键参数实现专业排版效果
  • 如何用Escrcpy实现安卓设备图形化控制:从新手到专家的完整指南
  • Seekr BadgerDB集成:如何优化大规模OSINT数据的存储与查询
  • 5个关键场景揭秘:如何用ZLMediaKit构建高性能流媒体服务器
  • 快速入门futures-await:5分钟掌握Rust异步编程新语法
  • 单色图最简单、最完美的抠像方法 - 透明渐变抠像 - C# - 行人-
  • 用优麦云定时策略助你时间管理,2026最新优麦云优惠折扣码开通渠道更新 - 跨境电商卖家出海
  • 技能名称:azure-ai-openai-dotnet
  • 2026深圳正规搬家公司口碑榜|跨区搬家实测对比+暗藏收费项逐一曝光+签合同前必问的8个问题 - 从来都是英雄出少年
  • CCManager支持Gemini CLI全攻略:多AI助手协同工作的最佳实践
  • LakeFormation:AWS 数据湖治理服务详解
  • Rufus终极指南:如何快速制作Windows 11启动盘并绕过硬件限制
  • 【Doris】日志查看方式