R语言-变量与运算符
变量和运算符
1.变量命名
R语言的变量可以存储原子向量、原子向量组或许多R对象的组合。
命名规范:
- 变量名由字母、数字、下划线或点
.
组成 - 变量名的开头:
- 以字母开头,或者以点开头(但点后面不能紧跟数字)
- 不能以数字开头,不能以下划线开头
2.赋值
赋值:可以用 向左 <-
、向右->
、等于号 =
来为变量分配值。
打印变量值:用 print()
或者 cat()
,不同的是,前一个只能打印一个变量,后一个能打印多个变量,如:(注意两者输出的格式也不一样)
a <- c(1,2,3)
b <- c(4,5,6)
print(a)
#输出:
[1] 1 2 3
cat(a,b)
#输出:
1 2 3 4 5 6
3.变量的数据类型
在 R语言里,变量没有像c语言那样定义时就要声明号数据类型,而是根据分配到的R-对象来判断其数据类型,类似python,因此,R语言是动态类型的语言。
4.查找变量
要知道当前工作空间中已经定义了哪些变量,用 ls()
函数查看,例如:
a <- c(1,2,3)
b <- c(4,5,6)
ab <- a + b
print(ls())
#输出:
[1] "a" "b" "ab"
可以使用模式 pattern
来匹配含有指定字符的变量:
print(ls(pattern = 'a')) #注意,函数内的参数不能用 '<-' 和 '->'来赋值
[1] "a" "ab"
5.删除变量
使用 rm()
函数对当前工作空间内的变量进行删除
a <- c(1,2,3)
b <- c(4,5,6)
ab <- a + b
rm(ab)
print(ls())
#输出:
[1] "a" "b" #变量ab被删除了
print(ab) #这时试图打印ab的值出错:
#输出:
Error in print(ab): 找不到对象'ab'
Traceback:
1. print(ab)
删除多个变量:rm(变量1,变量2,...)
a <- c(1,2,3)
b <- c(4,5,6)
ab <- c(7,8,9)
rm(a,b)
print(ls())
#输出
[1] "ab"
删除所有的变量可以用语句 rm(list= ls())
rm(list = ls())
print(ls())
#输出:
character(0)
运算符
1.算数运算符
运算符 | 描述 | 举例 |
---|---|---|
+ | 两个向量相加 | print(c(1,2) + c(3,4)) 结果:[1] 4 6 |
- | 两个向量相减 | print(c(1,2) - c(3,4)) 结果:[1] -2 -2 |
* | 两个向量相乘 | print(c(1,2) * c(3,4)) 结果:[1] 3 8 |
/ | 两个向量相除 | print(c(3,2) / c(3,4)) 结果:[1] 1.0 0.5 |
%% | 两个向量求余 | print(c(5,8) %% c(3,4)) 结果:[1] 2 0 |
%/% | 两个向量求商 | print(c(5,8) %/% c(3,4)) 结果:[1] 1 2 |
^ | 乘方运算 | print(c(2,2) ^ c(3,4)) 结果:[1] 8 16 |
2.关系运算符
R语言关系运算符有以下6种:
>
, <
, =
, >=
, <=
, ==
, !=
,含义与其他很多语言都一样
两个向量比较时将会对每个元素进行比较,例如:
a <- c(1,5,9)
b <- c(2,4,9)
print(a>b) #输出:[1] FALSE TRUE FALSE
print(a==b) #输出:[1] FALSE FALSE TRUE
print(a!=b) #输出:[1] TRUE TRUE FALSE
3.逻辑运算符
-
R语言的逻辑运算符有:
&
(逻辑与),|
(逻辑或),!
(逻辑非) -
除此外,还有
&&
(逻辑AND),||
(逻辑OR);
前3个运算符对两个向量的元素逐一进行逻辑运算,后2个只是对两个向量的第一个元素进行运算:
a <- c(0,1,0,FALSE)
b <- c(1,2,TRUE, FALSE)
print(a&b) #输出 [1] FALSE TRUE FALSE FALSE
print(a|b) #输出 [1] TRUE TRUE TRUE FALSE
print(!a) #输出 [1] TRUE FALSE TRUE TRUE
print(a&&b) #输出 [1] FALSE
print(a||b) #输出 [1] TRUE
4.赋值运算符
左分配符:<-
, <<-
, =
右分配符:->
, ->>
例如:
v1 <- c(1,2,3+1i)
v2 <<- c(1,2,3+1i)
v3 = c(1,2,3+1i)
c(1,2,3+1i) -> v4
c(1,2,3+1i) ->> v5
print(v1)
print(v2)
print(v3)
print(v4)
print(v5)
它们的输出结果相同,均为:[1] 1+0i 2+0i 3+1i
5.其他运算符
:
(冒号运算符), 将会按顺序创建一系列数字,例如:
t <- 3:8
print(t) #输出 [1] 3 4 5 6 7 8
%in%
用于判断元素是否属于向量,例如:
a <- 4
b <- 10
c <- 2:6
print(a %in% c) #输出 [1] TRUE
print(b %in% c) #输出 [1] FALSE
%*%
用于将矩阵与其转置矩阵相乘:
M = matrix(c(1,2,3,4,5,6,7,8),nrow = 2, ncol = 4, byrow = TRUE)
print(M)
#输出:
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
print(t(M)) #将矩阵转置
#输出:
[,1] [,2]
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8
相乘:(注意这可不是对应位置相乘,形状都不一样)
print(M %*% t(M))
#输出:
[,1] [,2]
[1,] 30 70
[2,] 70 174
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383571.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人