news 2026/10/2 7:05:13

R语言基础语法入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
R语言基础语法入门

一、 基础操作与概念

1. 赋值与输出

在R语言中,最标准的赋值符号是左箭头<-。虽然等号=也可以使用,但在R社区中<-是更为推荐的代码规范。

# 1. 赋值x<-10# 将10赋值给变量x (推荐)y=20# 使用等号赋值 (合法但不推荐)30->z# 右箭头赋值 (较少使用)# 2. 输出print(x)# 使用print()函数输出x# 直接输入变量名按回车即可输出cat("x的值是:",x,"\n")# cat()用于拼接字符串和变量输出,\n为换行符

2. 注释

R语言只支持单行注释,使用#符号。如果需要多行注释,需要在每一行前面加上#。

# 这是一个单行注释x<-5# 这也是注释

二、 基本数据类型 (Data Types)

R语言中常用的基本数据类型有五种。可以使用class()或typeof()函数来查看变量的数据类型。

  1. Numeric (数值型):默认的数字类型,包含小数。
  2. Integer (整型):表示整数,需要在数字后加字母L声明。
  3. Character (字符型):文本字符串,用双引号""或单引号''括起来。
  4. Logical (逻辑型):布尔值,只有TRUE(或T) 和FALSE(或F)。
  5. Complex (复数型):包含实部和虚部。
num<-10.5# class: numericint<-10L# class: integerchr<-"Hello R"# class: characterlogi<-TRUE# class: logicalcomp<-3+2i# class: complex# 类型转换函数as.numeric("123")# 字符转数值as.character(123)# 数值转字符as.logical(1)# 数值转逻辑值 (0为FALSE,非0为TRUE)

三、 运算符

1. 算术运算符

  • +(加),-(减),*(乘),/(除)
  • ^或**(指数/求幂)
  • %%(求余数/模)
  • %/%(整除)
10%%3# 返回 1 (10除以3的余数)10%/%3# 返回 3 (10除以3的整数部分)

2. 关系运算符

返回值均为逻辑型 (TRUE或FALSE)。

  • >,<,>=,<=,==(等于),!=(不等于)

3. 逻辑运算符

  • &(元素级逻辑与):用于向量,逐个元素比较。
  • &&(标量逻辑与):只比较向量的第一个元素,常用于if语句。
  • |(元素级逻辑或)。
  • ||(标量逻辑或)。
  • !(逻辑非/取反)。

四、 核心数据结构

这是R语言最核心的部分,主要分为六大数据结构。R语言的索引从 1 开始,而不是 0。

1. 向量 (Vector)

一维数组,只能包含同一种数据类型。使用c()函数(concatenate)创建。

# 创建向量vec_num<-c(1,2,3,4,5)vec_chr<-c("A","B","C")vec_seq<-1:10# 快速生成1到10的整数序列vec_seq2<-seq(1,10,by=2)# 生成1, 3, 5, 7, 9# 向量索引vec_num[1]# 提取第1个元素,返回 1vec_num[c(1,3)]# 提取第1和第3个元素vec_num[-1]# 提取除了第1个元素之外的所有元素# 向量化运算 (R语言的强项)vec_num*2# 所有元素均乘以2,返回 2, 4, 6, 8, 10

2. 矩阵 (Matrix)

二维数组,只能包含同一种数据类型。

# 创建一个 2行 3列 的矩阵,按列填充 (默认)mat<-matrix(1:6,nrow=2,ncol=3)# 创建矩阵,按行填充mat_byrow<-matrix(1:6,nrow=2,ncol=3,byrow=TRUE)# 矩阵索引 mat[行, 列]mat[1,2]# 提取第1行,第2列的元素mat[1,]# 提取整个第1行mat[,2]# 提取整个第2列

3. 数组 (Array)

多维数据结构,只能包含同一种数据类型。

# 创建一个 2×3×2 的三维数组arr<-array(1:12,dim=c(2,3,2))arr[1,2,1]# 提取第1维度的第1行第2列

4. 列表 (List)

一维集合,可以包含不同类型的数据(甚至可以包含向量、矩阵、函数或其他列表)。

# 创建列表my_list<-list(name="Tom",age=25,scores=c(90,85,88))# 列表索引my_list[1]# 返回一个子列表 (class仍为list)my_list[[1]]# 返回列表第一个元素本身的值 ("Tom")my_list$name# 使用 $ 符号通过名称提取元素 (最常用)

5. 数据框 (Data Frame)

二维表格数据,类似于Excel表格。每一列可以是不同的数据类型,但每一列的长度必须相同。这是R中处理数据的最常用结构。

# 创建数据框df<-data.frame(ID=c(1,2,3),Name=c("Alice","Bob","Charlie"),Passed=c(TRUE,FALSE,TRUE))# 数据框提取df$Name# 提取Name列 (返回向量)df[1,]# 提取第1行所有数据df[,"Passed"]# 提取Passed列df[df$ID>1,]# 条件筛选:提取ID大于1的行

6. 因子 (Factor)

用于存储分类数据(Categorical data),分为名义型(无序)和有序型。

# 创建因子gender<-factor(c("Male","Female","Male","Female"))levels(gender)# 查看因子的水平 (类别): "Female" "Male"# 有序因子sizes<-factor(c("Small","Large","Medium"),levels=c("Small","Medium","Large"),ordered=TRUE)

五、 控制流语句 (Control Flow)

1. 条件判断 (if…else)

x<-10if(x>0){print("正数")}elseif(x<0){print("负数")}else{print("零")}

**向量化条件函数:ifelse()**
非常适合对整个向量进行快速条件判断。

# ifelse(条件, 满足条件时的返回值, 不满足时的返回值)scores<-c(55,75,90)results<-ifelse(scores>=60,"Pass","Fail")# 返回: "Fail" "Pass" "Pass"

2. 循环语句 (Loops)

for 循环(最常用)

for(iin1:5){print(i^2)}

while 循环

count<-1while(count<=3){print(count)count<-count+1}

控制循环的关键字

  • break:立即跳出整个循环。
  • next:跳过当前这一轮循环的剩余代码,直接进入下一轮 (相当于其他语言的continue)。

六、 函数 (Functions)

除了R语言自带的丰富函数,用户也可以自定义函数。使用function关键字定义。

# 定义一个计算圆面积的函数calculate_area<-function(radius){if(radius<0){return("半径不能为负数")# 使用 return() 显式返回值}area<-pi*radius^2area# 如果没有 return(),函数会自动返回最后一行表达式的结果}# 调用函数calculate_area(5)

设置默认参数:

power<-function(base,exp=2){# exp 默认为 2return(base^exp)}power(3)# 返回 9power(3,3)# 返回 27

七、 常用内置基础函数速查

  • 数学统计:

  • sum(x),mean(x),median(x),sd(x),var(x): 求和、均值、中位数、标准差、方差。

  • max(x),min(x),range(x): 最大值、最小值、范围。

  • abs(x),round(x, digits=2): 绝对值、保留两位小数。

  • 数据属性查看:

  • length(x): 向量/列表的长度。

  • dim(x): 矩阵/数据框的维度 (行数和列数)。

  • nrow(x),ncol(x): 行数、列数。

  • str(x): 查看数据对象的内部结构 (非常实用)。

  • summary(x): 输出对象的统计摘要。

  • 其他工具:

  • is.na(x): 判断数据中是否存在缺失值 (NA)。

  • na.omit(x): 移除含有缺失值的行。

  • help(函数名)或?函数名: 查看某个函数的官方帮助文档。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 7:04:53

江苏水性漆喷塑原子灰制造厂家实力参考 口碑好的源头生产厂家推荐

江苏水性漆喷塑原子灰制造厂家实力参考&#xff0c;口碑好的源头生产厂家推荐 钣金喷塑行业选对原子灰&#xff0c;直接决定工件良品率与生产成本。无锡市涂料有限公司(简称涂料)深耕工业腻子领域三十余年&#xff0c;旗下锡德XIDE品牌A8喷塑专用原子灰专为静电粉末喷涂工况定制…

作者头像 李华
网站建设 2026/10/2 7:04:43

乐山私汤民宿服务哪家好?独立汤池民宿客户口碑力荐

乐山私汤民宿服务哪家好?独立汤池民宿客户口碑力荐短途度假热潮之下&#xff0c;泡汤民宿成为越来越多人的出行选择。但真正能把私汤二字做实的民宿&#xff0c;在乐山并不多见。热水不稳、汤池共享、私密性差&#xff0c;是游客吐槽最多的三类问题。峨眉山荷叶云上民宿依托天…

作者头像 李华
网站建设 2026/10/2 7:04:43

好用还专业!2026年实力出众的专业一键生成论文工具

2026年AI论文写作工具已从“基础生成”升级为融合智能写作、学术合规与高效降重的全流程解决方案&#xff0c;核心评价维度涵盖文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规与多语言支持。本次测评覆盖6款主流工具&#xff0c;测试场景包括中文/英文论文撰写、全流…

作者头像 李华
网站建设 2026/10/2 7:04:42

三亚办百人婚宴一站式服务推荐哪家好,金莎海景酒店靠谱省心

三亚办百人婚宴一站式服务推荐哪家好?金莎海景酒店靠谱省心近年来&#xff0c;三亚作为国内热门的滨海婚礼目的地&#xff0c;热度持续攀升。越来越多的新人把人生最重要的仪式选在海边&#xff0c;百人规模的滨海婚宴需求逐年增长。与需求同步上涨的&#xff0c;是新人们的焦…

作者头像 李华
网站建设 2026/10/2 7:03:14

WorkBuddy + ima 搭建个人知识库:从资料散落到达标可复现

WorkBuddy ima 搭建个人知识库&#xff1a;从资料散落到达标可复现&#xff08;防幻觉实战&#xff09; 摘要&#xff1a;个人知识库最常见的问题不是“不会建库”&#xff0c;而是资料散在微信、PDF、会议纪要、网页收藏里&#xff0c;真正要用时翻不到&#xff1b;AI 问答又…

作者头像 李华