I often find myself wanting to create quick in-memory tables in q for testing purposes. The usual way to create a table is by specifying lists of column names and values, or flipping a dictionary, as shown below:
([] name:`Alice`Bob`Charles;age:20 30 40;city:`London`Paris`Athens) // or, using a dictionary: flip `name`age`city!(`Alice`Bob`Charles;20 30 40;`London`Paris`Athens)
As you can see, it's quite difficult to visualise the table being created using this approach. That's why I sometimes prefer to create a table from a multi-line CSV string instead, using the 0: operator, as shown below:
("SIS";enlist",") 0: "name,age,city Alice,20,London Bob,30,Paris Charles,40,Athens " name age city ------------------ Alice 20 London Bob 30 Paris Charles 40 Athens
Note that you can also load from a CSV file:
("SIS";enlist",") 0: `$"/path/to/file.csv"Related post:
kdb+/q - Reading and Writing a CSV File