# NOT RUN {
{
data('inapplicable.datasets')
myPhyDat <- inapplicable.phyData[[4]] # or as.phyDat(read.nexus.data('filepath'))
class(myPhyDat) # phyDat object
# Convert list of character codings to an array
myData <- vapply(myPhyDat, I, myPhyDat[[1]])
# Convert phyDat's representation of states to binary
myContrast <- attr(myPhyDat, 'contrast')
tokens <- colnames(myContrast)
binaryContrast <- integer(length(tokens))
tokenApplicable <- tokens != '-'
binaryContrast[tokenApplicable] <- 2 ^ (seq_len(sum(tokenApplicable)) - 1)
binaryValues <- apply(myContrast, 1,
function (row) sum(binaryContrast[as.logical(row)]))
myStates <- matrix(binaryValues[myData], nrow=nrow(myData),
ncol=ncol(myData), dimnames=dimnames(myData))
# Finally, work out minimum steps
apply(myStates, 1, MinimumSteps)
}
# }
Run the code above in your browser using DataLab