R:来自正常,绝对值的随机采样

时间:2016-10-16 19:37:09

标签: r

我对以下问题感兴趣:从N(0,1)生成100个随机样本,每个样本大小为100。在每个样本中,找到绝对平均值,例如(1/100)*样本中所有x的总和(abs(x))。以下是我的意思:

std::vector<int> V = ....;
quick_sort(V.begin(), V.end());

但这似乎只是采用一个100大小的随机样本。我该如何修复我的代码?我如何生成set.seed(124) N <- 100 samples <- rnorm(n=N, mean=0, sd=1) A <- function(x,N){ (1/N)*sum(abs(x)) } result <- sapply(samples, A, N) print(result) print(mean(result)) print(var(result)) 的{​​{1}}的均值和方差的图表变化?我是否必须使用result循环,或者在R中有更好的方法吗?

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

试试这个:

runs <- 100;
rfun <- rnorm;
size <- 100;
m <- double(0)
for (i in 1:runs) m[i] =  mean(rfun(size));

现在,你有100个样本来自100个样本,每个100个样本。我已经写好了,所以如果你愿意,你可以使用除正常之外的发行版。

答案 1 :(得分:0)

这更具功能性。它更接近你想要的吗?

stop: function(event, ui){
if(ui.item.parent().attr('id') !== 'sortable'){
  $("#sortable").sortable("cancel");
  }
},

来自sample_hundo <- function() { rnorm(n=100, mean=0, sd=1) } funny_normalize <- function(sample.vec) { sum(abs(sample.vec)) / length(sample.vec) } replicate(10, funny_normalize(sample_hundo()))

  

'replicate'是'sapply'for的常用用法的包装        重复评估一个表达式(通常会涉及到        随机数生成)。

答案 2 :(得分:0)

使用矩阵怎么样?每列代表一次运行,每列包含100个来自N(0,1)的值。你应该尽量避免循环。

dgNames.Rows[dgNames.CurrentRow.Index].Selected = false;
dgNames.Rows[dgNames.CurrentRow.Index + 1].Selected = true;