R代码迭代蓝调

时间:2014-03-25 03:48:58

标签: r iteration

我是R的新手,试图用它来形象化。为了简化这个故事,我正在探讨一个关于公共产品经济理论的猜想。 (我已经50多岁了,所以请耐心等待。)

就R而言,我需要创建一个带有两个向量的矩阵,一个带有E(W)/ max(W),第二个带有stdev(W)/ E(W)。诀窍是W,我的r.v.的样本空间一直在扩展1.为了更清楚,这里是W的概率分布,前4次迭代:

W p 0 2/3 1 1/3

W p 0 3/6 1 2/6 2 1/6

W p 0 4/10 1 3/10 2 2/10 3 1/10

W p 0 5/15 1 4/15 2 3/15 3 2/15 4 1/15

...

我需要重复这20次左右。当然,我可以通过复制,粘贴,然后手动调整简单代码来手动执行此操作,但它看起来太笨重和丑陋,而且我有点担心---你知道 - 优雅。

在这个社区的帮助下,我学会了如何编写R来生成概率的分母:

R code iteration

我想(愚蠢地)我可以从那里拿走它,但是几个小时后我的秃头抓住了,我仍然被卡住而不知道如何得到我想要的东西。这是关于我不太了解如何编写不那么简单的迭代过程。 :/

我会感激任何帮助,尤其是让我走上正轨的线索。

提前致谢!

2 个答案:

答案 0 :(得分:1)

你只是在总和中潜水;并且1到k的和是k *(k + 1)/ 2。所以......

R>k <- 3
R>k:1 / (k^2 + k)*2

答案 1 :(得分:0)

我假设你的意思是你想要一个20行左右的矩阵,每行是你请求的两个量的值,因为分布的值为max(W) = N

t(vapply(seq_len(20) + 1, function(N) {
  W <- seq(N, 1) / (N * (N + 1) / 2) # create your distribution w/ 20 values
  E <- function(pdf) sum((seq_along(pdf) - 1) * pdf)
  c(E(W) / max(W), sqrt(E((W - E(W))^2)) / E(W))
}, numeric(2)))