How to find what events cluster together?
It's just a simple idea but you could calculate the conditional probabilities of an event given another:

library(plyr)

condProbEvents &lt;- function(d) {
  ldply(colnames(d), function(col1) {
    t(ldply(colnames(d), function(col2) {
      nrow(d[d[,col1] &amp; d[,col2],]) / nrow(d[d[,col2],]) # p(col1|col2)
    }))
  })
}


This gives you values which are easy to interpret, e.g. for p(divorce|marriage): "X% of the people who had a marriage also had a divorce"