as.data.frame fills in empty cells with NAs