R:如何在条件下生成序列seq()?

Sav*_*SUS -1 random r vector

我刚刚发现了R而我正在尝试使用它.

这是我想要实现的目标:

我有一个数字向量x,介于50和100之间,大小为250个观测值.

x = sample(seq(50, 100), 250, repeat = T)
Run Code Online (Sandbox Code Playgroud)

现在,我想生成另一个数字矢量y,介于0和100之间,这与矢量x的大小相同,因此y中的每个元素都小于或等于x中的等价物.

也就是说,如果x [1]是76,例如,生成的最高值y [1]可以达到76.但它绝对可以是低于76的任何其他值.换句话说,更一般地说,我想要矢量y以y [i] <= x [i]的方式生成.

我希望我的要求更清楚.

非常感谢你!

42-*_*42- 5

y <- x -1 # ...........................

 y <- sapply( x, function(x) runif(n=1, max=x))
 y
 [1]  7.2713788 30.0008063 42.5205775  0.9271717 10.7114456 39.5199145  7.4109775
 [8] 28.3464373 28.5840101 34.0654033 15.0675028 50.2836294 45.9031794 13.5931005
[15] 43.2751738 17.0560824  3.1507491 25.7619129 12.3391448 22.6203684 51.3334810
[22] 37.0481703 33.4733277 37.1304850 26.7984406 66.3844126 40.2775918 47.6379024
[29] 16.2480595 66.8358384 33.3513161 60.2673874 65.6204462 45.6951960  1.5729434
[36] 20.4850357  0.1345737 84.5334203 19.7997451 53.8025623 48.5528486  8.8992123
[43] 90.9651742 28.3584167 41.7728159 46.4790641 17.8129578 83.1906415 37.5114353
[50] 89.5685501 85.2499600
Run Code Online (Sandbox Code Playgroud)

  • 不是'runif(n = length(x),max = x)`工作同样好吗? (2认同)