首页 > > > 【R语言基础】04. 数值计算与自带函数
R中数值计算的对象一般是向量或列表,不同长度的对象进行计算时,短的对象元素将被循环使用。
1. 基本数学运算
+ - * / 、^(求幂)、%%(求模)、%/%(整除)
注意:可以关于小数求模,例如5.4 %% 2.3 为0.8
2. 比较运算
>、<、>=、<=、==、!=
3. 逻辑运算
&、|、!、&&、||、xor(异或)
注意:“&”和“|”作用在对象中的每一个元素上并且返回逻辑值向量;而“&&”和“||”只作用在对象的第一个元素上。
nrow(A),ncol(A)——矩阵A的行数、列数;
dim(A)——矩阵A的维数;
rowSums(A), rowMeans(A), colSums(A), colMeans(A)——按行按列求和、求均值;
t(A)——A转置;det(A)——方阵A的行列式;A+B, A-B,A*B,A/B——同型矩阵做加法、减法、乘法、除法;
c*A——数乘;
A%*%B——矩阵乘法,要求A的列数=B的行数;
kronecker(A,B)——矩阵A与B的Kronecker积;
crossprod(A,B)或t(A)%*%B——内积(数量积,前者效率高),;
outer(A,B)或A%o%B——外积(叉积);
diag(A)——提取矩阵A的对角元素,diag(diag(A))用A的对角元素生成对角矩阵,diag(n)生成n维单位矩阵;
solve(A)——矩阵A的逆;
ginv(A)——矩阵A的广义逆(Moore-Penrose逆);
solve(A,B)——A
-1B,解线性方程组Ax=B;
eigen(A)——求矩阵A的特征值和特征向量,,为对角矩阵,U的列为特征值对应的特征向量;
svd(A)——对矩阵A做奇异值分解,A=UDV
T,其中U和V为正交矩阵,D为对角矩阵;
qr(A)——矩阵A的QR分解,Am×n=Qm×mRm×n,其中Q为酉矩阵,R为阶梯形矩阵;
chol(A)——正定矩阵A的科利分解,A=P
TP,其中P为上三角矩阵;
A[upper.tri(A)],A[lower.tri(A)]——矩阵A的上三角矩阵、下三角矩阵。
1. 基本数学函数
round(x, digits=n)——四舍五入,保留n位小数
signif(x, digits=n)——四舍五入,保留n位有效数字
ceiling(x)——向上取整,例如ceiling(pi)为4
floor(x)——向下取整,例如floor(pi)为3sign(x)——符号函数
abs(x)——取绝对值
sqrt(x)——求平方根
exp(x)——e的x次幂
log(x, base=…)——对x取以…为底的对数,默认以e为底
log2(x)——对x取以2为底的对数
log10(x)——对x取以10为底的对数
Re(z)——返回z的实部
Im(z)——返回z的虚部
Mod(z)——求z的模
Arg(z)——求z的辐角
Conj(z)——求z的共轭复数
2. 三角函数与双曲函数
sin(x)——正弦函数
cos(x)——余弦函数
tan(x)——正切函数(余切=1/正切)
asin(x)——反正弦函数
acos(x)——反余弦函数
atan(x)——反正切函数(反正切+反余切=π/2)
sinh(x)——双曲正弦函数
cosh(x)——双曲余弦函数
tanh(x)——双曲正切函数
asinh(x)——反双曲正弦函数
acosh(x)——反双曲余弦函数
atanh(x)——反双曲正切函数
3. 统计函数
min(x)——求最小值
cummin(x)——求累计最小值
max(x)——求最大值
cummax(x)——求累计最大值
range(x)——求x的范围:[最小值,最大值](向量)
sum(x)——求和
cumsum(x)——求累计和
prod(x)——求乘积
cumsum(x)——求累计积
mean(x)——求平均值
median(x)——求中位数
quantile(x,pr)——求分位数,x为数值向量,pr为概率值
sd(x)——求标准差
var(x)——求方差
scale(x,center=TRUE,scale=TRUE)——将数据对象x按列进行中心化或标准化
注:(1)数据中心化,指的是数据各项减去均值;scale(x, center=TRUE, scale=FALSE)表示数据中心化;scale(x, center=TRUE, scale=TRUE)表示数据标准化
(2) 极差标准化(中心化再除以极差),可借助sweep()函数实现:
center<-sweep(x,2,apply(x,2,mean))
R<-apply(x,2,max)-apply(x,2,min)
XX<-sweep(center,2,R,"/")
diff(x,lag=n)——求滞后差分,lag指定滞后n项,默认n=1
difftime(t1,t2,units=...)——计算时间间隔,units指定单位:“auto”、“secs”、“mins”、“hours”、“days”、“weeks”
date<-c("2016-01-27","2016-02-27")
date
[1] "2016-01-27" "2016-02-27"
difftime(date[2],date[1],units="days")
Time difference of 31 days
difftime(date[2],date[1],units="weeks")
Time difference of 4.428571 weeks
4. 概率函数
factorial(n)——返回n的阶乘,或prod(1:n),gamma(n+1)
choose(n,k)——组合数
gamma(x)——伽马函数
beta(a,b)——beta函数
R语言中,常用的概率函数有密度函数、分布函数、分位数函数、生成随机数函数,其写法是:
d = 密度函数(density)
p = 分布函数(distribution function)
q = 分位数函数(quantile function)
r = 生成随机数(随机偏差)
上述4个字母+分布缩写,就构成通常的概率函数,例如:
dnorm(t, 0, 2)
返回正态分布N(0,4)在t值处的密度。
常用分布的缩写:
分布名称
缩写
参数及默认值
二项分布
binom
size, prob
多项分布
multinom
size, prob
负二项分布
nbinom
size, prob
几何分布
geom
prob
超几何分布
hyper
m, n, k
泊松分布
pois
lambda
均匀分布
unif
min=0, max=1
指数分布
exp
rate=1
正态分布
norm
mean=0, std=1
对数正态分布
lnorm
meanlog=0, stdlog=1
t分布
t
df
卡方分布
chisq
df
F分布
f
df1, df2
Wilcoxon符号秩分布
signrank
n
Wilcoxon秩和分布
wilcox
m, n
柯西分布
cauchy
location=0, scale=1
Logistic分布
logis
location=0, scale=1
Weibull分布
weibull
shape, scale=1
Gamma分布
gamma
shape, scale=1
Beta分布
beta
shape1, shape2
datas<-rnorm(10,1,2) #生成10个服从N(1,4)的随机数
datas
[1] 1.9421455 0.9726418 -1.4393392 0.3270554
[5] -2.3584609 -0.4306681 1.9822438 1.5701892
[9] -1.4688888 0.4876727
dnorm(1:3,1,2) #求N(1,4)分布在1,2,3处的概率密度
[1] 0.1994711 0.1760327 0.1209854
pnorm(1:3,1,2) #求N(1,4)分布在1,2,3处的分布函数值
[1] 0.5000000 0.6914625 0.8413447
#命中率为0.02,独立射击400次,至少击中两次的概率
1-sum(pbinom(0:1,400,0.02))
[1] 0.9968561
#X~N(1,4),求P{0<X<=1.6}
pnorm(1.6,1,2)-pnorm(0,1,2)
[1] 0.3093739
qnorm(1-0.025,0,1) #N(0,1)的上0.025分位数
[1] 1.959964
[1] 张良均,谢佳标,杨坦,肖刚. R语言与数据挖掘. 机械工业出版社,2016.
作者:张敬信
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3127638/ ,如需转载,请注明出处,否则将追究法律责任。