On Dec 18, 2009, at 6:27 PM, Raymond Danner wrote:

Dear R community,

I am trying to create a matrix of permutations of a vector:
bands <- c("AL", "B", "DB", "DG", "G", "K", "LB", "LG", "MG", "O", "P",
"PI", "PK", "PU", "R", "V", "W", "Y")

Each permutation must be 4 characters long. permutations() from the gtools
package does this easy enough:
possible.combos <- permutations(18, 4, bands)

However, “AL” must be one of the elements in each permutation.
Any ideas?

Just use the ones that satisfy your requirements:

> str(possible.combos)
 chr [1:73440, 1:4] "AL" "AL" "AL" "AL" "AL" "AL" "AL" "AL" ...
> str(apply(possible.combos, 1, function(x) "AL" %in% x))
 logi [1:73440] TRUE TRUE TRUE TRUE TRUE TRUE ...
> sum(apply(possible.combos, 1, function(x) "AL" %in% x))
[1] 16320

And you will need to clarify what you mean by must be "4 characters long" because none of the strings that would be formed with the method you describe would qualify unless you really mean "4 elements long".

--

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
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