在向量中找到第一个增加的值

时间:2015-02-26 12:22:49

标签: r min self uniform

我从Uniform Distribution中随机抽取样本

u <- runif (1000,0,1)

现在我想计算这个随机变量的值

N = min_n {n : u_n > u_{n-1}}

修改 假设我画了一个大小为10的随机样本。

所以,我有u= (u_1,u_2,u_3,...,u_10)。现在,我想找到n

的最小u_n > u_{n-1}

1 个答案:

答案 0 :(得分:1)

如果您采取差异(使用diff),那么您正在寻找差异大于0的位置。我们会在第一时间搜索

u <- c(.5, .4, .3, .6)
min(which(diff(u) > 0))

这给了我们3接近我们想要的但不完全正确。因为如果第一个差异大于0,这将返回1,我们真正想要做的是在结果中添加1

min(which(diff(u) > 0))) + 1

哪个应该给我们想要的东西。如果您的序列严格下降,则会发出警告,因为它无法找到符合条件的值。在这种情况下,我们可以编写一些测试代码并决定适当的输出,但我会将其作为读者的练习。