注释
单行注释
井号 #
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
