【发布时间】:2017-06-21 14:00:08
【问题描述】:
我想从具有三个参数的三角分布中生成数字:a、b、c,在我的例子中,c 定义为 (a+b)/2。
假设我有一个向量x:
x <- c(1,-1,2,-2,3,-3,4,-4,5,-5,11,-11,12,-12,13,-13)
我想生成与向量 x 中的负数一样多的新值。所以进一步我可以用三角分布生成的数字替换负值。
library(triangle)
c = abs(x[x<0])/2
sample <- rtriangle(length(a[which(a<0)]), 0, abs(x[x<0]),c)
显然这不起作用,因为我收到一条警告消息:
警告信息: 1:在 if (a > c | b 1 并且只使用第一个元素 2:在 if (a != c) { 中: 条件的长度 > 1 并且只使用第一个元素 3:在 p[i] * (b - a) 中: 较长的对象长度不是较短对象长度的倍数 4:在 p[i]
【问题讨论】:
-
参数
a为0,但b和c不是单个数字。我不清楚你是如何尝试采样的。 -
在
rtriangle的帮助下:a, b, and c may be appropriate length vectors except in the case of rtriangle. -
我想得到一个从三角形分布中采样的数字的向量(向量长度对应于向量 x 中的多个负数)。我想在 a (a = 0) 到 b 的范围内进行采样(b 是负元素的绝对值在向量中x)和参数c是:c = b/2.
-
我不明白
rtriangle: a, b, and c may be appropriate length vectors except in the case of rtriangle.在这里是怎么限制的。
标签: r statistics simulation