[R] zipfR help
R. Michael Weylandt
michael.weylandt at gmail.com
Tue Apr 24 17:30:25 CEST 2012
Please reply on list for the archives (and so others who know more
about zipfR can help):
Your immediate problem is that rlnre produces factors not integers and
so there's no way to order them (and hence no idea of being "less"
than 6000) -- if you want you can coerce to integer with as.integer()
and then max at 6000 like I suggested. Whether this is reasonable for
your problem,I don't know: I'm not particularly familiar with the
zipfR package.
Michael
On Tue, Apr 24, 2012 at 10:46 AM, meh L <iamrutabaga at gmail.com> wrote:
> Hi Michael,
>
> I only want the random generated be within the range of 1 to 6000. So yes
> 6000 is the upper bound. pmin(zmsample, 6000) is not working for me
> though. I am starting to think maybe I will need to use fzm instead of zm
> because zm by nature is infinite population size?
>
> Thanks.
>
>> pmin(zmsample,6500)
> [1] 23 94 14 23 2 60 5 7 163266 8
> [11] 3397 13 321 68 204 3 25 2 4 8
> [21] 2 8 16 3 461 34 39 4 29 92
> [31] 20 54 13 1 273 18 1665 66 59 596
> [41] 56 8820 228 22 13 2097 17111 2 5 10
> [51] 12 9 1 5 5 37 14 10 8 2324
> [61] 2 138 18 90 7 852 16 15 16 94622
> [71] 51 239 1 23 9 7 875 10 18 14489
> [81] 2 8 1 5 5 330 4 1 26 17
> [91] 26 10 2 1 605 1 2 97 32 51
> [101] 12 2 21 55 2 6 103 510 4 5
> [111] 6 7 6 7 52 53 2 88 8 5
> [121] 22 127 3 7 1389 2 3 4 8 2
> [131] 2 1 36 21 474 12 85 2 3 3
> [141] 64 22 36 10969 9 2 1 236 42 149
> [151] 22 19 50 2 2 7 372017 6 11 39
> [161] 418 19 26 376 1 1 5 57 100 3
> [171] 25 26 8 263 6 60 3 52 41 4
> [181] 1503 2 1 41945 3 1 465 25 16 318
> [191] 109 13 375 69493 1 21 167 1 4 22
> [201] 50 1 1 7 43 10 11 2 8 7
> [211] 2 7 4 2 2294 982 45 4 67 4
> [221] 10 1 27 250539 5 104 3 1 9 1
> [231] 12 1 8 415 297 25 51 3 2 1
> [241] 8 6 7 6 17 1643 215 10 11 4
> [251] 9 1 28 73 12 47 135 51 9 162
> [261] 3 3 7 7438 3 12281 2 1 6 3
> [271] 2 722 5 25 8117 11 2 5 49 9
> [281] 49 3 94 119 1 6 1 52 7 2344
> [291] 25 13 21 8 3 14 4 42 51 29
> [301] 1490 21 10 12 6 226 38 3 2 94
> [311] 7 1085 27 28 2 999 4 1 356 6
> [321] 135 5 999 2 2 6345 9 32 2 6
> [331] 2 10 601 5 15 136 22 161852 24 2
> [341] 154 23 9 26125 3 1 177 1 32 69
> [351] 1 108 23 2 1 1 1 17 34 3
> [361] 23 222 1 43 748 1 3 5 53 2
> [371] 188 2 585 4 357 9 190 21 15 6
> [381] 32 74 9 142 25 3 4 92 54 47
> [391] 35 1 28 40 84 120 1 32 4 146598
> [401] 2562 80 751821 201 4 22 147 8 3 15
> [411] 28 63 28 4 15 14 1 15 33 6
> [421] 78 63 15 10 7 11 2 21 7 144
> [431] 2 1687 40202 10 17781 163 12 1 107 823
> [441] 11 2 6 2468 11 399 134 154 6 1
> [451] 6 2 202 213 9 556 25 4 15 30
> [461] 45 30 200 191 9 8 64 15 27 381
> [471] 1 6 6 47 341 3 19 6 2 62
> [481] 2761 196 19 49 100 7 10 40 22 5
> [491] 2040 8 68 41 17 4 44 3 2554 81
> 180 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
> 751821
> Warning message:
> In Ops.factor(mmm, each) : > not meaningful for factors
>
>
> On Mon, Apr 23, 2012 at 8:14 PM, R. Michael Weylandt
> <michael.weylandt at gmail.com> wrote:
>>
>> It depends how you want to ensure that condition -- if you just want
>> to censor at an upper bound of 6k, this is easy:
>>
>> pmin(zmsample, 6000)
>>
>> If you want to sample "as before" but it just happens to all be less
>> than 6000 -- that's not really a rigorous statement, but just go with
>> it -- intuitively, you can draw more samples and just take enough that
>> satisfy your condition. There are perhaps different thoughts on the
>> most efficient way to do it efficiently. It's probably better,
>> however, to do it using an inverse transform -- I'll work it out here
>> for an easy distribution and you can adopt it to yours.
>>
>> # 100 samples from X ~ Exp(lambda = 2) conditioned on X <=1 [Again,
>> this isn't really X ~ Exp(2) ....]
>>
>> maxU <- pexp(1, 2)
>> rU <- runif(100, max = maxU)
>> samp <- qexp(rU, 2)
>>
>> Michael
>>
>> On Mon, Apr 23, 2012 at 6:29 PM, meh L <iamrutabaga at gmail.com> wrote:
>> > Hi,
>> >
>> > I have a question on generating random variables based on
>> > zipf-mandelbrot
>> > distribution.
>> >
>> > So when I execute the following lines:
>> >
>> > ZM = lnre ("zm", alpha = 2/3, B=0.1)
>> > zmsample = rlnre (ZM, n =100)
>> > zmsample
>> >
>> > It generates 100 random values based on a zipf-mandelbrot distribution
>> > as
>> > below. But how do I make sure the generated random number is within the
>> > range of 1 - 6000 only? Can I include that as one of the parameters in
>> > rlnre?
>> >
>> > Thank you for your help!
>> >
>> >
>> > [1] 5 9 4 396 1435 2 2 4
>> > [9] 6 11 11 5 18 8 2
>> > 13
>> > [17] 3 5 33 10 1 3 6
>> > 17
>> > [25] 2 18 44438 141 155 740009 12
>> > 2
>> > [33] 7977 17 10 68 90 25 27
>> > 2
>> > [41] 5 37 107 7330 6 119 2
>> > 102
>> > [49] 1 30 6 5 4 2 28
>> > 7
>> > [57] 6 8396 1169 66 361 2 2
>> > 665
>> > [65] 20 1825 9 25 141 7 31
>> > 56
>> > [73] 24135 20 20 29 5 13 6
>> > 7
>> > [81] 2579 4 21 1 1 12 67800
>> > 4
>> > [89] 3 154573 13 29 1 11 48
>> > 120
>> > [97] 550 13 15 305 41 1 133
>> > 178
>> > [105] 24 476 6 12 1 16 27
>> > 22
>> > [113] 20 19 17 75 14 1137 3
>> > 36
>> > [121] 7 9 14 14 1 19 257
>> > 69
>> > [129] 230 7 1 84 9 11 2
>> > 82
>> > [137] 343 193 4 2 47 817 40
>> > 4
>> > [145] 37 10 4 39 15 3 97
>> > 69
>> > [153] 186 5 52 36 9 9 119
>> > 310
>> > [161] 5 777 4 1 2212 1456 38
>> > 11
>> > [169] 8 6 20 46 362 1407 5
>> > 10
>> > [177] 5940 16822 3 4 5737 59 13
>> > 329
>> > [185] 96 379 55 86 16 568 9
>> > 23
>> > [193] 3 4 188 20 1 2 292
>> > 7
>> > [201] 9 2 17 10465 3 1 15
>> > 1040
>> > [209] 350 72 5 2 7 11 57
>> > 16
>> > [217] 18 6666278 31 17 80 11 5
>> > 211
>> > [225] 3 2 137 7 5 160 4
>> > 47
>> > [233] 6 23 104 13 83 62 12
>> > 178
>> > [241] 2 16 4 6 1 15 7
>> > 5
>> > [249] 2 6 26 241 5 5 2
>> > 1
>> > [257] 18 40 8 17 2 94 122
>> > 2
>> > [265] 2 27 76 263 2 2515 232
>> > 441
>> > [273] 3 20 6 132 191 48 12
>> > 57
>> > [281] 13 6 46 3 19 45 5
>> > 34
>> > [289] 7 15 50 153 4949 5 2
>> > 8
>> > [297] 44 2 3 12 281 4 125
>> > 1
>> > [305] 4 9 1294 28 1 126 4
>> > 9
>> > [313] 183 805 9 3 37 10874 31
>> > 12741
>> > [321] 21 58 2 2 4 94 1
>> > 3
>> > [329] 93 216 15 1575 22 20 1
>> > 1
>> > [337] 10 26 4 3 13 50 76
>> > 93
>> > [345] 10 28 140 4 1906 15 30
>> > 1
>> > [353] 2 15 2 4704 8 25 14
>> > 7
>> > [361] 159 6 191 6 3 8 12
>> > 14
>> > [369] 13 53 11 9 109 39 3
>> > 1
>> > [377] 20 91 13 1 1917 222 19
>> > 1
>> > [385] 19 9 40 54 2 67 5
>> > 1
>> > [393] 18 28 103090 3024 1601 1 5
>> > 1
>> > [401] 12 4 22 2 2 260 11
>> > 25004832
>> > [409] 7 4 55 1249 5 168 115
>> > 11
>> > [417] 7 2 3332 3796 38 2 28
>> > 12
>> > [425] 2 35079 295 58 3 84 12
>> > 78057
>> > [433] 2 2 178 11 352 1 3
>> > 23
>> > [441] 117 148 10 91 10 12 2
>> > 79
>> > [449] 67 4 6 47 4 395 10
>> > 21
>> > [457] 26 7 3399 4 1 3 13
>> > 33
>> > [465] 8 70 13 15 201 18 1623
>> > 140
>> > [473] 2658 40 13 9 6 1 27
>> > 605
>> > [481] 26 4 248 663 4 2 307
>> > 67
>> > [489] 3 4740 129 2466 136 14 144
>> > 1
>> > [497] 21 16 3 271
>> >
>> > [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> > http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>
>
More information about the R-help
mailing list