This is applying reshape::cast(). Only for 'aggregated' data without multiple measurements of one trait.
Otherwise, definitions must be set for how to aggregate data, if one taxon has multiple measurements for one trait. It is impossible to make advanced assumptions about the data quality.