r语言中随机正态分布均值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r语言中随机正态分布均值相关的知识,希望对你有一定的参考价值。

如图所示,正态分布中随机产生10个均值为1的序列赋值给x,再对x求均值,为什么不是1?
图片内容为:
> x<-c(rnorm(10,mean=1))
> x
[1] 1.63382782 1.41237007 0.21381031 1.95237903 1.08686937 2.70204065 0.01613913 0.49487134 1.23512581 1.98837463
> mean(x)
[1] 1.273581
----------------------------------------------------------------------------------------------
我想问的是为什么mean(x)不是1

产生100个均值为0标准差为1的正态分布随机数:rnorm(100, mean = 0, sd = 1) 指数分布数 dnorm(x, mean = 5, sd = 1, log = TRUE) 参考技术A 楼主可以试试用options(digits=2)来定义数字精度,然后再用set.seed()来定义随机数的种子以后,再试试看,或许有用 参考技术B 当输入mean(x)是,x的值其实就是前面你已经显示的数值
> x <- c(1.63382782, 1.41237007, 0.21381031, 1.95237903, 1.08686937, 2.70204065, 0.01613913, 0.49487134, 1.23512581, 1.98837463)
> mean(x)
[1] 1.273581

如何在R语言中进行中文编程

又发现了个好玩的hiahiahia:
给四个例子,大家看了例子应该都能会用中文写r语言:
例1
预定义:

# 定义函数
"生成正态分布随机数"<-function(数量=1,均值=0,标准差=1){rnorm(数量,mean=均值,sd=标准差)}
"画个直方图"<-function(数据,是否转换为概率密度){
  if(是否转换为概率密度=='是的'){
    hist(数据,probability=TRUE)
  }else{
    hist(数据,probability=FALSE)
  }
  }
"计算核密度"<-function(x){density(x)}
"画条线"<-function(曲线数据,颜色,粗细程度){lines(曲线数据,col=颜色,lwd=粗细程度)}

中文编程:

# 中文编程代码部分
"正态分布数据"<-生成正态分布随机数(数量=1000,均值=0,标准差=1)
画个直方图(正态分布数据,是否转换为概率密度='是的')
画条线(计算核密度(正态分布数据),颜色='red',粗细程度=3)

效果:

例2
预定义:

# 定义函数
"输出"<-function(x){print(x)}
"求均值"<-function(x){mean(x)}
"建立集合"<-function(...){c(...)}

中文编程:

# 中文编程代码部分
"一群人的年龄"=建立集合(15,26,18,21,30)
输出(一群人的年龄)
"平均年龄"<-求均值(一群人的年龄)
输出(平均年龄)

结果:

[1] 15 26 18 21 30
[1] 22

例3
预定义:

# 定义函数
"输出"<-function(x){print(x)}
"生成正态分布随机数"<-function(数量=1,均值=0,标准差=1){rnorm(数量,mean=均值,sd=标准差)}
"排序"<-function(x){sort(x)}
"获取长度"<-function(x){length(x)}
"建立等差数列"<-function(开始,结尾,公差){seq(from=开始,to=结尾,by=公差)}
"求均值"<-function(x){mean(x)}
"求标准差"<-function(x){sd(x)}
"画条折线"<-function(横轴数据,纵轴数据,线的样式){
  if(线的样式=='楼梯状'){
    plot(横轴数据,纵轴数据,type="s")
  }else{
    plot(横轴数据,纵轴数据)
  }
}

中文编程:

# 中文编程代码部分
# 数据生成
"正态分布数据"<-生成正态分布随机数(数量=100,均值=75,标准差=3)


# 概率分布图
"排序后数据"<-排序(正态分布数据)
"长度"<-获取长度(排序后数据)
"网格"<-建立等差数列(开始=1,结尾=长度,公差=1)/长度

"数据的均值"<-求均值(排序后数据)
"数据的标准差"<-求标准差(排序后数据)
输出(数据的均值)
输出(数据的标准差)

画条折线(排序后数据,纵轴数据=网格,线的样式='楼梯状')

结果:

[1] 75.36
[1] 2.914


例4
预定义:

# 定义函数
"输出"<-function(x){print(x)}
"建立等差数列"<-function(开始,结尾,公差){seq(from=开始,to=结尾,by=公差)}
"创建一个矩阵"<-function(用到的数据,矩阵行数,矩阵列数,按行排列){
  if(按行排列=='是的'){
    matrix(data=用到的数据,nrow=矩阵行数,ncol=矩阵列数,byrow=TRUE)
  }else{
    matrix(data=用到的数据,nrow=矩阵行数,ncol=矩阵列数,byrow=FALSE)
  }
}

中文编程:

# 中文编程代码部分
"一个数列"<-建立等差数列(开始=1,结尾=17,公差=2)
输出(一个数列)

"第一个矩阵"<-创建一个矩阵(用到的数据=一个数列,矩阵行数=3,矩阵列数=3,按行排列='是的')
输出(第一个矩阵)

"第二个矩阵"<-创建一个矩阵(用到的数据=一个数列,矩阵行数=3,矩阵列数=3,按行排列='不要')
输出(第二个矩阵) 

结果:

[1] 1 3 5 7 9 11 13 15 17
.
…[,1] [,2] [,3]
[1,] 1 3 5
[2,] 7 9 11
[3,] 13 15 17
.
…[,1] [,2] [,3]
[1,] 1 7 13
[2,] 3 9 15
[3,] 5 11 17

以上是关于r语言中随机正态分布均值的主要内容,如果未能解决你的问题,请参考以下文章

R语言-rnorm函数

如何在R语言中进行中文编程

如何在R语言中进行中文编程

MATLAB生成多元正态分布随机数(指定均值及协方差)——mvnrnd函数详解

R:如何计算截断正态分布的均值和协方差

R语言与统计-2:方差分析