Always fun to follow up your own posts....

The replicate() line should be
v <- replicate(1000, sample(s))     # generates an 800 x 1000 matrix

Sorry for the bandwidth waste...
Dennis

On Mon, Oct 18, 2010 at 6:55 PM, Dennis Murphy <djmu...@gmail.com> wrote:

> Hi:
>
> One way to permute your sample 1000 times is to use the r*ply() function
> from the plyr package. Let s denote your original vector, randomly generated
> as follows:
>
> s <- rbinom(800, 0.6)               # simulates your Yes/No vector
> library(plyr)
> u <- raply(1000, sample(s))    # generates a 1000 x 800 matrix
>
> As Steve mentioned, you can also use replicate():
>
> v <- replicate(1000, sample(r))     # generates an 800 x 1000 matrix
>
> # With mydata as your original data frame, the 1000 reshuffles can be
> attached with
> df <- data.frame(mydata, t(u))                  # or  df <-
> data.frame(mydata, v)
> names(df)[3:1002] <- paste('S', 1:1000, sep = '')
> write.csv(df, file = 'myExcelFile.csv', quote = FALSE, row.names = FALSE)
>
> Substitute your input vector for s in the raply() call. [Note that
> replicate() is about 10 times faster than raply() for this example.]
> The result should be an 800 x 1002 (two original variables + 1000
> reshuffles) data frame. Writing to a csv file is a convenient intermediary
> between R and Excel, but there are several ways to write data from R to
> Excel. See
> http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows
>
> HTH,
> Dennis
>
> On Mon, Oct 18, 2010 at 4:37 AM, Peter Francis <peterfran...@me.com>wrote:
>
>> Dear List,
>>
>> I have a table i have read into R:
>>
>> Name    Yes/No
>>
>> John    0
>> Frank   1
>> Ann             0
>> James   1
>> Alex    1
>>
>> etc  - 800 different times.
>>
>> What i want to do is shuffle yes/no and randomly re-assign them to the
>> name.
>>
>> I have used sample() and permute(), however there is no way to do this
>> 1000 times. Furthermore, i want to copy the data into a excel spreadsheet in
>> the same order as the data was input so i can build up a distribution of the
>> statistic for each name. When i use shuffle the date gets returned like this
>> -
>>
>> [1] 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1
>>  [34] 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0
>>  [67] 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1
>>  [100] 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0
>>  [133] 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0
>>  [166] 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1
>>  [199] 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1
>>  [232] 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1
>>  [265] 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1
>>  [298] 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0
>>  [331] 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1
>>
>> etc
>>
>> Rather than like this
>>
>> John    0
>> Frank   1
>> Ann             0
>> James   1
>> Alex    1
>>
>> Can anyone suggest a script that would achieve this?
>>
>> Thanks
>>
>> Peter
>>
>> ______________________________________________
>> R-help@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.
>>
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to