Создать последовательности случайных чисел с одинаковым расстоянием в R - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь создать последовательности из пяти случайных чисел в диапазоне значений, где элементы имеют одинаковое расстояние друг от друга. Я пользователь R.

более подробно: в этом диапазоне чисел числа <- seq (0.50,0.75, длина = 100) </p>

Я хочу выбрать как можно больше случайных последовательностей где каждый элемент имеет 0,02 разности друг с другом (0,50, 0,52, 0,54, 0,56, 0,58) (0,52, 0,54, 0,56, 0,58, 0,60) ...... (0,60, 0,62, 0,64, 0,66, 0,68)

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 16 марта 2020
set.seed(0)
replicate(5,{
  x=runif(1,0.5,0.75)
  seq(x,x+0.0.8,0.02)
})
          [,1]      [,2]      [,3]      [,4]      [,5]
[1,] 0.5504205 0.7245974 0.7361688 0.6651994 0.6572785
[2,] 0.5704205 0.7445974 0.7561688 0.6851994 0.6772785
[3,] 0.5904205 0.7645974 0.7761688 0.7051994 0.6972785
[4,] 0.6104205 0.7845974 0.7961688 0.7251994 0.7172785
[5,] 0.6304205 0.8045974 0.8161688 0.7451994 0.7372785

5 различных массивов в столбцах.

1 голос
/ 16 марта 2020

Не ясно, если это именно то, что вы ищете. Все ли начальные значения также должны быть кратны 0,02? Если это так, это 9 возможных наборов, которые соответствуют вашему брифу.

lapply(seq(0.5, 0.66, 0.02), function(x) x + 0.02*0:4)
#> [[1]]
#> [1] 0.50 0.52 0.54 0.56 0.58
#> 
#> [[2]]
#> [1] 0.52 0.54 0.56 0.58 0.60
#> 
#> [[3]]
#> [1] 0.54 0.56 0.58 0.60 0.62
#> 
#> [[4]]
#> [1] 0.56 0.58 0.60 0.62 0.64
#> 
#> [[5]]
#> [1] 0.58 0.60 0.62 0.64 0.66
#> 
#> [[6]]
#> [1] 0.60 0.62 0.64 0.66 0.68
#> 
#> [[7]]
#> [1] 0.62 0.64 0.66 0.68 0.70
#> 
#> [[8]]
#> [1] 0.64 0.66 0.68 0.70 0.72
#> 
#> [[9]]
#> [1] 0.66 0.68 0.70 0.72 0.74

Если начальные числа могут принимать любое значение, то лучшим решением будет

runif(1, 0.5, 0.67) + 0.02 * 0:4

, который вы можете положить в al oop или lapply, чтобы получить любое количество образцов, как это:

lapply(seq(5), function(x) runif(1, 0.5, 0.67) + 0.02 * 0:4)
#> [[1]]
#> [1] 0.5973477 0.6173477 0.6373477 0.6573477 0.6773477
#> 
#> [[2]]
#> [1] 0.5174972 0.5374972 0.5574972 0.5774972 0.5974972
#> 
#> [[3]]
#> [1] 0.6529702 0.6729702 0.6929702 0.7129702 0.7329702
#> 
#> [[4]]
#> [1] 0.5418349 0.5618349 0.5818349 0.6018349 0.6218349
#> 
#> [[5]]
#> [1] 0.5071501 0.5271501 0.5471501 0.5671501 0.5871501

...