【R语言】2.注释&基础运算

注释

单行注释

井号 #

r 复制代码
# 单行注释

多行注释

r 复制代码
if(FALSE) {
    "
    这是一个多行注释的实例
    注释内容放在单引号或双引号之间
    "
}

这里的FALSE永远不会走进去,所以字符串刚好可以当做注释用。估计大家都喜欢用#号吗?谁愿意多敲这几个字符呢

好奇if TRUE会打印什么,打一个看看。

r 复制代码
# 单行注释


# 多行注释
if(FALSE) {
    "
    这是一个多行注释的实例
    注释内容放在单引号或双引号之间
    "
}

if(TRUE) {
    "
    TRUE
    "
}

TRUE的时候,单纯的打印了字符串。

基础运算

赋值运算符

向左赋值 <- = <<-

r 复制代码
v1 <- c(3,1,TRUE,"阿月浑子の")
v2 <<- c(3,1,TRUE,"阿月浑子の")
v3 = c(3,1,TRUE,"阿月浑子の")
print(v1)
print(v2)
print(v3)

向右赋值 -> ->>

r 复制代码
# 向右赋值
c(3,1,TRUE,"阿月浑子の") -> v1
c(3,1,TRUE,"阿月浑子の") ->> v2
print(v1)
print(v2)

向右赋值和向左赋值类似,只不过变量在左,就叫左赋值;变量在右,就叫右赋值。

例外,这里的c是conbine的缩写,c(3,1,TRUE,"阿月浑子の")这个可以理解为一个向量,组合在一起这样。

数学运算符

按优先级从高到低

(1)括号

(2)乘方运算 ^

(3)整除求余 %% 和 整除 %/%

(4)乘* 除/

(5)加+ 减-

r 复制代码
1+2*3
(1+2)*3
3/4
3.4-1.2
1-4*0.5^3
5^2
8/3 %% 2 # 8/(3%%2)=8/1=8
8/4 %% 2 # 8/(4%%2)=8/0=Inf 正无穷
10 %% 3  
10 %/% 3

运行结果:

关系运算符

r 复制代码
v = c(2,4,6,9) # 这里的c是combine合并的缩写,表示将多个值合并成一个向量
t = c(1,4,7,9)
v>t
v<t
v==t
v!=t
v>=t
v<=t
# [1]  TRUE FALSE FALSE FALSE
# [1] FALSE FALSE  TRUE FALSE
# [1] FALSE  TRUE FALSE  TRUE
# [1]  TRUE FALSE  TRUE FALSE
# [1]  TRUE  TRUE FALSE  TRUE
# [1] FALSE  TRUE  TRUE  TRUE

逻辑运算符

& | ! 元素与或非

r 复制代码
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)
print(v|t)
print(!v)
# [1]  TRUE  TRUE FALSE  TRUE
# [1] TRUE TRUE TRUE TRUE
# [1] FALSE FALSE FALSE FALSE

&&逻辑与 ||逻辑或

r 复制代码
# &&、||只对第一个元素进行比较
print(1 && 2==0)  # FALSE
print(1 || 2==0)  # TRUE

其他运算符

冒号运算符:

r 复制代码
v <- 1:10
print(v)

输出:

类似于python中的

python 复制代码
[i for i in range(1,11)]

%in% 判断元素是否在向量里

r 复制代码
# 1 到 10 的向量
v <- 1:10
print(v)

# 判断数字是否在向量 v 中
v1 <- 3
v2 <- 15
print(v1 %in% v) # TRUE
print(v2 %in% v) # FALSE
print(c(1,11,33) %in% v) # TRUE FALSE FALSE

类似于python的in,不过R语言可以判断一个向量的所有元素在不在另一个向量中。

%*% 用于矩阵与矩阵相乘

r 复制代码
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)


数学函数

sqrt(n):n的平方根

r 复制代码
sqrt(9)  # 3

exp(n):e的n次方

r 复制代码
exp(1)  # e=2.718282

对数函数log

log(m,n) m的对数函数,返回n的几次方等于m
log10(m) 相当于log(m,10)

r 复制代码
log(2,4) # 0.5
log10(10000) # 4

取整函数

round(n):对n四舍五入取整
round(n, m):对n保留m位小数四舍五入
ceiling(n):对n向上取整
floor(n)对n向下取整

r 复制代码
round(1.5)
round(2.5)
round(3.5)
round(4.5)
# [1] 2
# [1] 2
# [1] 4
# [1] 4
# 当取整位是偶数的时候,五也会被舍去,这一点与 C 语言有所不同。
round(1.5234,2)
round(2.51345,4)
round(2.51335,4)
# [1] 1.52
# [1] 2.5135
# [1] 2.5134

三角函数和反三角函数

R的三角函数是弧度制

r 复制代码
# R的三角函数是弧度制
sin(pi/6) 
cos(pi/4)
tan(pi/3)
# [1] 0.5
# [1] 0.7071068
# [1] 1.732051

# 反三角函数
asin(0.5)
acos(0.7071068)
atan(1.732051)
# [1] 0.5235988
# [1] 0.7853981
# [1] 1.047198

概率分布函数

r 复制代码
dnorm(0) # 概率密度函数f(x)
pnorm(0) #概率密度积分函数(从无限小到x的积分)F(x)
qnorm(0.95) # 分位数函数
rnorm(3,5,2) # 随机数函数:产生3个平均值为5,标准差为2的正态随机数
# [1] 0.3989423
# [1] 0.5
# [1] 1.644854
# [1] 5.474243 5.103539 4.892618
相关推荐
不绝1911 分钟前
C#进阶——内存
开发语言·c#
风送雨2 分钟前
Go 语言进阶学习:第 1 周 —— 并发编程深度掌握
开发语言·学习·golang
小北方城市网4 分钟前
第 5 课:服务网格(Istio)实战|大规模微服务的流量与安全治理体系
大数据·开发语言·人工智能·python·安全·微服务·istio
jghhh015 分钟前
自适应信号时频处理方法MATLAB实现(适用于非线性非平稳信号)
开发语言·算法·matlab
AC赳赳老秦5 分钟前
Go语言微服务文档自动化生成:基于DeepSeek的智能解析实践
大数据·开发语言·人工智能·微服务·golang·自动化·deepseek
古城小栈5 分钟前
Rust 之 迭代器
开发语言·rust
r***12385 分钟前
GO 快速升级Go版本
开发语言·redis·golang
木木木一8 分钟前
Rust学习记录--C5 Rust struct
开发语言·学习·rust
superman超哥8 分钟前
Rust 生命周期注解:从语法到深层理解
开发语言·后端·rust·rust生命周期·生命周期注解
0和1的舞者12 分钟前
《GUI 自动化详解(二):控件、鼠标键盘与菜单列表操作全指南》
开发语言·自动化测试·python·测试开发·自动化·测试