List values in tidy dataset Can a table that has a list of values in a field, say comma-separated, be tidy? For example, the CSV:
id,name,tags
1,fork,"utensil,cutlery"
2,plate,crockery

My instinct is "no", but I realise, I'm not exactly sure which, if any, of the definitions of a tidy dataset it violates? 


*

*Each variable forms a column.

*Each observation forms a row.

*Each type of observational unit forms a table.


My best guess is that it violates "each observation forms a row", since in a row there are multiple "observations" of the tags. But I can see the argument that a single "observation" could yield multiple tags, so it would still be tidy...
If it's not tidy, then a tidy version of this would be two tables?
id,name
1,fork
2,plate

and
item_id,tag
1,utensil
1,cutlery
2,crockery

 A: "Tidy" is just a novel term for Codd's Third Normal Form for a relation.
The answer in this case depends on what kind of analysis you plan to do:


*

*If you do not intend to split the "tags" field into components, your data are tidy.

*If you do intend to split the "tags" field into components, then you are attempting to stuff multiple values into single cells of the table: that violates (1).  Fix this by creating two relations (tables):


*

*Retain this table to represent kitchen implements (plates, forks, etc.)

*Create another table to represent types of implements (crockery, cutlery, etc.) along with the associated implements (a foreign key).
The process may sound complicated, but its basic simplicity is evident in an example.  Here is the result of (1):
id     name
 1     fork
 2     plate

("id" still is the key field and must be unique)
... and the result of (2):
tag     item
utensil    1
cutlery    1
crockery   2

("tag" is the key field and will be unique).
The "item" fields in the second table point to records in the first table.
Because the field names and the order of fields in a relation are irrelevant, this is the same solution proposed in the question.
Any kind of statistical analysis can be performed on these tables separately.  To reconstitute the original table, you would perform a (natural) join operation on the two tables.
