1.模拟掷骰子函数
roll<-function(){
die<-1:6
dice<-sample(die,size=2,replace=TRUE)
sum(dice)}
2.对骰子进行加权
2.1均匀的骰子——通过【重复】、【可视化】工具来实现
通过replicate重复掷这一对骰子,并用qplot函数【R包】将重复抛掷的结果可视化
2.1.1 qplot函数【快速绘图】
1.qplot函数
将两个长度相同的数值向量交给qplot函数,就能绘制出一幅散点图。
qplot将第一个向量作为一组x值,第二个向量作为一组y值
2.c函数——创建数值向量
> x<-c(-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1)
> x
[1] -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0
> y<-x^3
> y
[1] -1.000 -0.512 -0.216 -0.064 -0.008 0.000 0.008 0.064 0.216 0.512
[11] 1.000
> qplot(x,y)
散点图:描述两个变量之间的关系
3.直方图:可视化单一变量的分布情况
通过直方图可以直观地展示x的哪些值出现的频率较高
额外设置参数binwidth = 1
> library(ggplot2)
> x<-c(0,1,1,2,2,2,3,3,4)
> qplot(x,binwidth=1)
注:此图有错误
2.1.2 replicate函数
replicate(10,roll()) 提供重复的次数和重复运行的R代码
rolls<-replicate(1000,roll()) #replicate函数调用方法;返回值赋给rolls
qplot(rolls,binwidth=1.0)
2.2 实现加权概率
所有非6点数的概率减小到1/8,而提高点数6的概率为3/8
在sample函数中添加一个prob参数 (pdf48)
prob参数:第一个元素对应的是被抽样向量中的第一个元素的抽样权重
> roll<-function(){
die<-1:6
dice<-sample(die,size=2,replace=TRUE,prob = c(1/8,1/8,1/8,1/8,1/8,3/8))
sum(dice)} #用c函数来把一组向量赋给prob
> rolls<-replicate(1000,roll())
> qplot(rolls,binwidth=1)