Columns should be in region->sample->observation order.
This is tricky due to merge() re-ordering columns. Things like dplyr's join I think get around this but this introduces a dependency (and a potential conflict with plyr, which is currently a dependency).