ITPub博客

首页 > > > 【R语言基础】04. 数值计算与自带函数

【R语言基础】04. 数值计算与自带函数

作者:浪花小雨滴 时间:2020-06-17 10:50:49 0 删除 编辑

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

-1
B,解线性方程组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

T
P,其中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)为3

sign(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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40008