Хотелось бы генерировать числа из треугольного распределения, которое имеет только три параметра: a, b, c и c в моем случае определяется как (a + b)/2. Скажем, у меня есть вектор х:Случайный образец треугольного распределения: R
x <- c(1,-1,2,-2,3,-3,4,-4,5,-5,11,-11,12,-12,13,-13)
И я хочу, чтобы создать столько новых значений, как есть отрицательные числа в вектор х. Поэтому я могу заменить отрицательные значения на числа, порожденные треугольным распределением.
library(triangle)
c = abs(x[x<0])/2
sample <- rtriangle(length(a[which(a<0)]), 0, abs(x[x<0]),c)
Очевидно не работает, как я получаю предупреждение:
Предупреждающие сообщения: 1: В случае (а> с | б < с) возвращение (респ (NaN, раз = n)): условие имеет длину> 1, и будет использоваться только первый элемент 2: In if (a! = c) {: условие имеет длину> 1 и будет использоваться только первый элемент 3: В p [i] * (b - a): длина длинного объекта не кратная короткой длине объекта 4: В p [i] < - a + sqrt (p [i] * (b - a) * (c - a)): Количество элементов для замены не кратно замещающей длины 5: В (1 - p [j]) * (b - a): длина длинного объекта не кратна короткой длине объекта 6: В p [j] < - b - sqrt ((1 - p [j]) * (Ь - а) * (Ь - с)): количество элементов для замены не кратна длине замены
Параметр 'a' равен 0, но' b' и 'c' не являются одиночными числами. Мне непонятно, как вы пытаетесь пробовать. –
С помощью 'rtriangle':' a, b и c могут быть соответствующими векторами длины, кроме как в случае rtriangle.' –
Я хотел бы получить вектор (длина вектора соответствует числу отрицательных чисел в векторе * * x **) чисел, отобранных из треугольного распределения. Я хочу попробовать в диапазоне от _a_ (_a = 0_) до _b_ (_b - абсолютное значение отрицательного элемента в векторе _ ** x **), а параметр _c_ равен: _c = b/2_. – marianess