参考资料:R语言实战【第2版】
1、数学函数
abs(x):绝对值
sqrt(x):平方根
ceiling(x):不小于x的最小整数
floor(x):不大于x的最大整数
trunc(x):向0的方向截取x中的整数部分
round(x,digits=n):将x舍入为指定位数的小数
signif(x,digits=n):将x舍入为指定的有效数字位数
cos(x)、sin(x)、tan(x):余弦、正弦、正切
acos(x)、asin(x)、atan(x):反余弦、反正弦、反正切
log(x,base=n):对x取以n为底的对数
log(x):自然对数
log10(x):常用对数
exp(x):自然指数
2、统计函数
mean(x):平均数
median(x):中位数
sd(x):标准差
var(x):方差
mad(x):绝对中位差
quantile(x,probs):求分位数。x为待求分位数的数值型向量,probs为一个由[0,1]质检的概率值组成的数值型向量。
range(x):求值域
sum(x):求和
diff(x,lag=n):滞后差分,lag用以指定滞后几项
min(x):最小值
max(x):最大值
scale(x,center=TRUE,scale=TRUE):为数据对象x按列进行中心化(center=TRUE)或标准化(center=TRUE,scale=TRUE)
x<-c(1,2,3,4,5,6,7,8)
# 平均值
mean(x)
# 标准差
sd(x)
3、概率函数
概率函数通常用来生成特征已知的模拟数据,以及在用户编写的统计函数中计算概率值。在R中,概率函数形式如下:
[dpqr] distribution_abbreviation()
其中第一个字母表示其所指分布的某一方面:
d=密度函数(density)
p=分布函数(distribution function)
q=分位数函数(quantile function)
r=生成随机数
beta:Beta分布
binom:二项分布
cauchy:柯西分布
chisq:卡方分布
exp:指数分布
f:F分布
gamma:Gamma分布
geom:几何分布
logis:Logistic分布
multinom:多项分布
nbinom:负二项分布
norm:正态分布
pois:泊松分布
signrank:Wilcoxon符号秩分布
wilcox:Wilcoxon秩和分布
t:t分布
unif:均匀分布
如果不指定一个均值和一个标准差,则norm函数将假定其为标准正态分布(均值为0,标准差为1)。密度函数(dnorm)、分布函数(pnorm)、分位数函数(qnorm)和随机数生成函数(rnorm)。
x<-pretty(c(-3,3),30)
y<-dnorm(x)
plot(x,y,type='l',xlab='Normal Deviate',ylab='Density',yaxs='i')
pnorm(1.96)
qnorm(0.9,mean=500,sd=100)
rnorm(50,mean=50,sd=10)
(1)设定随机数种子
在每次生成伪随机数的时候,函数都会使用一个不同的种子,因此也会产生不同的结果。我们可以通过函数set.seed()显式指定这个种子,让结果可以重现。下面用函数runif()用来生成0到1区间上服从均匀分布的伪随机数。
(2)生成多元正态数据
在模拟研究和蒙特卡洛方法中,我们经常需要获取来自给定均值向量和协方差矩阵的多元正态分布的数据。MASS包中的mvrnorm()函数可以让这个问题变得很容易。调用格式为:
mvrnorm(n,mean,sigma)
其中,n是我们想要的样本大小,mean为均值向量,sigma为方差-协方差矩阵。
library(MASS)
options(digits=3)
set.seed(1234)
mean<-c(230.7,146.7,3.6)
sigma<-matrix(c(15360.8,6721.2,-47.1,6721.2,4700.9,-16.5,-47.1,-16.5,0.3),nrow=3,ncol=3)
mydata<-mvrnorm(500,mean,sigma)
mydata<-as.data.frame(mydata)
names(mydata)<-c('y','x1','x2')
dim(mydata)
head(mydata)