| nexus.sets {ComPairWise} | R Documentation |
Creates a NEXUS-format sets block defining charsets of alignment columns that are the same and different. Designed as internal ComPairWise function, although useable in other contexts.
nexus.sets(ident.set, diff.set)
ident.set |
numeric vector; indices of elements to include in identical set |
diff.set |
numeric vector; indices of elements to include in different set |
Given two vectors, generates a character set of each. Designed to be mutually exclusive, but this isn't a requirement. Output is a multi-line character string, designed to be printed with writeLines, that can be used as-is in any NEXUS application that supports the sets block, or in pieces in any NEXUS application that supports character sets in another block.
Multi-line character string
TER
set1<-c(1,2,3,8,9,10)
set2<-c(4,5,6,7)
x<-nexus.sets(set1,set2)
writeLines(x)
## The function is currently defined as
function (col.ident, ident.set, diff.set)
{
if (!is.na(ident.set[1]))
nexus.ident.set.line <- paste("charset ident_align=",
paste(ident.set, sep = "", collapse = " "), ";",
sep = "")
else nexus.ident.set.line <- ""
if (!is.na(diff.set[1]))
nexus.diff.set.line <- paste("charset diff_align=", paste(diff.set,
sep = "", collapse = " "), ";", sep = "")
else nexus.diff.set.line <- ""
nexus.sets.block <- paste("begin sets;", "\n", nexus.ident.set.line,
"\n", nexus.diff.set.line, "\n", "end;", "\n", sep = "")
return(nexus.sets.block)
}