diff --git a/contingency.csv b/contingency.csv
new file mode 100644
index 0000000..3a0dafe
--- /dev/null
+++ b/contingency.csv
@@ -0,0 +1,1025 @@
+"sample","dimensionone","dimensiontwo","dimensionthree","dimensionfour"
+1,"B","0","C","0"
+2,"B","0","C","0"
+3,"B","1","C","-1"
+4,"B","-1","D","-1"
+5,"B","1","F","0"
+6,"B","0","F","-2"
+7,"B","1","C","-1"
+8,"B","-1","C","1"
+9,"B","1","C","2"
+10,"B","0","E","2"
+11,"B","0","F","-2"
+12,"A","0","F","-2"
+13,"B","1","C","-1"
+14,"A","-1","E","-2"
+15,"B","1","E","1"
+16,"A","-1","F","0"
+17,"A","1","F","2"
+18,"B","1","C","2"
+19,"A","-1","F","-1"
+20,"B","-1","C","-2"
+21,"B","0","D","0"
+22,"B","1","E","1"
+23,"B","1","F","-2"
+24,"B","1","E","-2"
+25,"A","-1","C","-2"
+26,"B","1","E","-1"
+27,"B","0","C","1"
+28,"B","1","F","-2"
+29,"B","-1","E","2"
+30,"A","-1","D","0"
+31,"A","-1","E","-2"
+32,"B","1","F","-2"
+33,"B","1","E","2"
+34,"B","1","F","-2"
+35,"B","-1","F","-2"
+36,"B","0","D","2"
+37,"A","0","E","-2"
+38,"A","-1","E","-1"
+39,"B","0","D","0"
+40,"B","1","C","1"
+41,"B","-1","C","1"
+42,"B","1","F","1"
+43,"B","0","E","1"
+44,"A","-1","C","0"
+45,"A","-1","C","2"
+46,"B","1","C","2"
+47,"A","-1","F","0"
+48,"B","0","E","2"
+49,"A","-1","C","1"
+50,"A","-1","E","-1"
+51,"B","1","D","0"
+52,"B","1","E","0"
+53,"A","0","F","0"
+54,"A","-1","E","0"
+55,"B","0","F","2"
+56,"B","0","C","2"
+57,"B","-1","E","-1"
+58,"A","0","F","-1"
+59,"B","1","F","-2"
+60,"A","-1","D","1"
+61,"A","0","D","1"
+62,"B","0","D","2"
+63,"A","-1","F","-1"
+64,"A","-1","C","2"
+65,"A","-1","F","2"
+66,"B","1","C","0"
+67,"A","-1","C","-1"
+68,"B","1","C","-2"
+69,"A","-1","F","-1"
+70,"B","0","F","-2"
+71,"B","0","F","1"
+72,"B","0","F","0"
+73,"B","0","C","-1"
+74,"A","-1","D","-1"
+75,"A","0","F","2"
+76,"B","0","D","0"
+77,"A","-1","F","-2"
+78,"A","-1","F","-1"
+79,"B","1","E","-1"
+80,"B","1","D","0"
+81,"B","1","C","1"
+82,"A","0","D","1"
+83,"A","-1","F","-1"
+84,"A","0","C","2"
+85,"B","1","D","1"
+86,"B","1","E","2"
+87,"B","-1","C","0"
+88,"B","1","C","0"
+89,"B","1","C","-2"
+90,"B","-1","C","0"
+91,"A","-1","C","1"
+92,"B","1","C","-2"
+93,"B","1","F","-2"
+94,"B","-1","C","2"
+95,"A","0","C","1"
+96,"A","0","C","0"
+97,"A","1","C","1"
+98,"B","-1","C","2"
+99,"B","1","F","0"
+100,"B","-1","C","1"
+101,"B","1","D","1"
+102,"B","0","F","-1"
+103,"A","0","D","0"
+104,"B","0","C","1"
+105,"A","0","D","-2"
+106,"A","1","C","2"
+107,"A","-1","D","-1"
+108,"A","-1","D","1"
+109,"A","-1","F","0"
+110,"B","0","C","-1"
+111,"B","1","C","0"
+112,"B","0","F","2"
+113,"B","0","C","-1"
+114,"A","-1","C","2"
+115,"A","-1","F","-1"
+116,"B","0","F","0"
+117,"A","0","E","2"
+118,"A","-1","E","-1"
+119,"A","-1","E","2"
+120,"B","1","E","-1"
+121,"A","0","E","1"
+122,"A","1","C","0"
+123,"B","1","F","-2"
+124,"A","-1","C","0"
+125,"B","1","D","0"
+126,"A","-1","E","2"
+127,"A","1","F","-1"
+128,"B","1","E","-2"
+129,"A","-1","F","-2"
+130,"B","1","E","0"
+131,"B","-1","C","1"
+132,"B","1","C","1"
+133,"B","1","F","-1"
+134,"A","0","F","-1"
+135,"A","1","C","1"
+136,"A","0","C","2"
+137,"B","-1","D","-2"
+138,"B","1","E","0"
+139,"B","1","F","1"
+140,"A","-1","C","0"
+141,"A","-1","F","-2"
+142,"A","-1","E","2"
+143,"A","-1","E","-2"
+144,"A","-1","F","-2"
+145,"A","-1","F","-2"
+146,"B","1","F","0"
+147,"A","-1","F","-2"
+148,"A","-1","C","0"
+149,"A","-1","F","-1"
+150,"B","-1","E","2"
+151,"A","-1","E","-1"
+152,"B","-1","F","-2"
+153,"B","0","E","1"
+154,"A","1","F","-1"
+155,"B","0","C","2"
+156,"A","-1","F","1"
+157,"A","-1","F","-1"
+158,"B","1","E","2"
+159,"A","0","C","0"
+160,"B","0","C","2"
+161,"B","1","C","2"
+162,"B","1","C","1"
+163,"A","0","F","-2"
+164,"A","-1","E","-1"
+165,"A","0","D","-1"
+166,"B","1","E","-2"
+167,"A","0","E","-1"
+168,"A","-1","C","2"
+169,"A","1","C","2"
+170,"A","-1","F","-2"
+171,"B","0","F","0"
+172,"A","-1","C","0"
+173,"B","1","F","0"
+174,"A","0","D","2"
+175,"A","-1","C","0"
+176,"A","-1","C","2"
+177,"B","1","C","-2"
+178,"A","-1","F","-2"
+179,"B","-1","D","-2"
+180,"A","-1","E","-2"
+181,"B","-1","F","-1"
+182,"A","-1","D","0"
+183,"B","1","E","-2"
+184,"B","1","E","1"
+185,"A","-1","D","-1"
+186,"B","1","D","1"
+187,"A","1","F","-2"
+188,"A","0","E","-1"
+189,"A","1","F","-2"
+190,"A","1","C","1"
+191,"B","1","F","-1"
+192,"B","0","C","1"
+193,"B","0","D","0"
+194,"A","-1","F","-2"
+195,"B","1","F","-2"
+196,"A","-1","C","-2"
+197,"A","-1","C","2"
+198,"B","-1","F","-1"
+199,"A","0","F","1"
+200,"B","1","F","1"
+201,"A","-1","F","-1"
+202,"B","0","F","-2"
+203,"B","0","C","2"
+204,"A","-1","C","0"
+205,"A","0","F","-1"
+206,"B","-1","F","0"
+207,"B","0","F","-2"
+208,"B","1","C","1"
+209,"A","-1","F","-2"
+210,"A","1","F","-2"
+211,"B","0","C","-1"
+212,"B","1","E","0"
+213,"A","1","F","0"
+214,"A","-1","F","0"
+215,"A","0","F","-1"
+216,"A","-1","C","2"
+217,"B","0","D","1"
+218,"A","-1","D","0"
+219,"A","0","D","-1"
+220,"A","1","E","2"
+221,"A","-1","E","-2"
+222,"A","-1","E","-1"
+223,"A","0","E","0"
+224,"B","1","D","-2"
+225,"A","-1","C","0"
+226,"B","1","F","2"
+227,"B","1","F","-1"
+228,"A","-1","C","1"
+229,"B","0","C","1"
+230,"B","0","F","0"
+231,"A","0","F","0"
+232,"B","-1","D","0"
+233,"B","-1","C","1"
+234,"A","0","C","2"
+235,"A","-1","D","-1"
+236,"A","1","C","2"
+237,"B","-1","E","-2"
+238,"B","0","E","-2"
+239,"B","1","C","1"
+240,"A","0","C","0"
+241,"A","0","C","2"
+242,"A","-1","C","0"
+243,"B","-1","F","-2"
+244,"B","1","C","1"
+245,"A","0","C","1"
+246,"A","-1","F","0"
+247,"B","0","E","-2"
+248,"A","-1","D","1"
+249,"A","1","E","-1"
+250,"B","1","C","1"
+251,"B","0","E","2"
+252,"B","0","F","-1"
+253,"B","0","C","2"
+254,"A","-1","C","-1"
+255,"A","-1","F","-2"
+256,"B","0","C","1"
+257,"B","0","D","0"
+258,"B","1","C","1"
+259,"A","-1","D","1"
+260,"B","0","D","-1"
+261,"B","0","E","-2"
+262,"A","1","E","-2"
+263,"B","0","D","-1"
+264,"B","1","F","-2"
+265,"A","-1","F","-1"
+266,"B","1","F","-2"
+267,"A","0","C","-1"
+268,"A","-1","F","-1"
+269,"A","0","F","-2"
+270,"B","1","D","0"
+271,"A","0","C","1"
+272,"B","1","F","0"
+273,"B","1","C","1"
+274,"B","1","C","1"
+275,"A","-1","C","2"
+276,"B","0","C","1"
+277,"B","1","E","0"
+278,"B","0","E","-2"
+279,"B","0","F","-1"
+280,"A","-1","F","1"
+281,"B","0","F","-1"
+282,"A","1","E","2"
+283,"A","-1","F","1"
+284,"B","1","C","0"
+285,"B","-1","C","-1"
+286,"B","1","E","-2"
+287,"A","0","C","1"
+288,"A","-1","C","0"
+289,"B","0","E","-1"
+290,"A","0","E","2"
+291,"A","-1","C","2"
+292,"A","-1","F","1"
+293,"B","-1","F","0"
+294,"B","0","D","2"
+295,"B","1","E","1"
+296,"A","-1","F","0"
+297,"A","-1","F","-1"
+298,"B","1","E","2"
+299,"A","-1","F","-1"
+300,"A","-1","E","-2"
+301,"B","0","F","-1"
+302,"B","-1","F","-1"
+303,"B","0","C","0"
+304,"B","1","F","1"
+305,"A","-1","E","2"
+306,"B","1","E","2"
+307,"A","0","D","0"
+308,"B","1","F","-2"
+309,"A","0","E","-2"
+310,"A","0","F","2"
+311,"B","0","E","-2"
+312,"A","0","D","0"
+313,"B","1","C","2"
+314,"B","0","F","1"
+315,"B","1","E","2"
+316,"B","0","F","0"
+317,"A","-1","E","0"
+318,"B","1","F","1"
+319,"B","-1","C","0"
+320,"A","0","F","0"
+321,"B","1","F","-2"
+322,"A","-1","D","-1"
+323,"B","-1","C","1"
+324,"A","-1","F","-1"
+325,"B","1","E","-2"
+326,"B","1","F","1"
+327,"A","-1","C","2"
+328,"B","0","E","1"
+329,"A","0","C","-1"
+330,"B","1","C","2"
+331,"A","-1","F","-1"
+332,"A","0","C","0"
+333,"B","1","D","0"
+334,"B","-1","F","1"
+335,"B","1","E","-1"
+336,"A","-1","C","0"
+337,"A","-1","E","-2"
+338,"B","0","E","-1"
+339,"B","1","C","-1"
+340,"A","0","C","1"
+341,"A","-1","C","-2"
+342,"B","0","C","2"
+343,"B","0","F","0"
+344,"B","1","D","2"
+345,"B","-1","C","-1"
+346,"B","1","C","0"
+347,"A","-1","E","-2"
+348,"B","0","C","1"
+349,"A","-1","D","0"
+350,"A","1","E","2"
+351,"A","-1","C","2"
+352,"B","1","C","2"
+353,"B","1","F","-2"
+354,"A","-1","C","-2"
+355,"A","-1","E","2"
+356,"B","1","C","2"
+357,"B","0","F","-2"
+358,"A","0","E","2"
+359,"B","0","E","0"
+360,"A","1","F","-2"
+361,"A","-1","F","-2"
+362,"B","-1","F","-1"
+363,"A","-1","E","0"
+364,"A","-1","E","0"
+365,"B","1","D","0"
+366,"A","0","F","-1"
+367,"A","-1","C","1"
+368,"A","-1","D","0"
+369,"B","1","C","-1"
+370,"B","1","F","-2"
+371,"A","1","D","1"
+372,"B","-1","D","0"
+373,"A","-1","F","-2"
+374,"A","-1","F","0"
+375,"B","0","F","-1"
+376,"B","0","F","-2"
+377,"A","-1","E","1"
+378,"B","1","F","-2"
+379,"B","1","C","1"
+380,"A","-1","F","0"
+381,"A","-1","E","-2"
+382,"A","-1","D","0"
+383,"B","1","D","-1"
+384,"A","-1","E","-1"
+385,"A","-1","C","0"
+386,"A","1","D","0"
+387,"A","-1","D","0"
+388,"B","1","F","-1"
+389,"B","1","E","-2"
+390,"B","1","C","1"
+391,"B","1","F","-1"
+392,"B","0","F","-2"
+393,"A","0","E","2"
+394,"B","1","F","1"
+395,"A","0","E","-1"
+396,"A","-1","E","0"
+397,"B","1","E","2"
+398,"B","-1","C","1"
+399,"B","0","E","-1"
+400,"A","-1","F","-2"
+401,"B","-1","F","-2"
+402,"A","0","C","1"
+403,"A","-1","D","0"
+404,"B","1","D","0"
+405,"B","0","F","-2"
+406,"B","1","C","1"
+407,"B","0","F","0"
+408,"A","0","C","2"
+409,"A","-1","D","0"
+410,"A","0","D","0"
+411,"A","-1","E","0"
+412,"A","1","E","-1"
+413,"A","-1","F","-2"
+414,"B","1","E","1"
+415,"B","0","D","1"
+416,"A","-1","D","-1"
+417,"A","1","E","-2"
+418,"B","1","C","1"
+419,"A","-1","F","0"
+420,"A","-1","C","2"
+421,"B","0","C","2"
+422,"B","0","C","1"
+423,"A","1","F","-2"
+424,"A","1","C","0"
+425,"A","1","C","2"
+426,"A","0","E","-1"
+427,"A","-1","D","-1"
+428,"A","1","F","0"
+429,"B","0","E","-2"
+430,"A","0","C","2"
+431,"B","1","C","-1"
+432,"A","0","E","1"
+433,"A","1","D","1"
+434,"A","1","C","-2"
+435,"A","-1","F","2"
+436,"A","-1","D","1"
+437,"A","-1","D","2"
+438,"A","0","C","0"
+439,"A","1","C","2"
+440,"A","-1","D","0"
+441,"A","-1","F","-2"
+442,"A","-1","F","0"
+443,"A","-1","D","0"
+444,"B","1","E","2"
+445,"A","-1","F","-2"
+446,"B","0","E","1"
+447,"B","-1","C","1"
+448,"A","-1","F","-2"
+449,"A","1","C","1"
+450,"B","0","F","0"
+451,"B","0","E","-2"
+452,"B","-1","F","0"
+453,"A","-1","C","0"
+454,"B","1","E","-2"
+455,"A","-1","D","0"
+456,"A","-1","F","0"
+457,"B","1","F","1"
+458,"A","0","F","1"
+459,"A","-1","E","2"
+460,"B","0","C","0"
+461,"B","1","C","1"
+462,"A","0","D","0"
+463,"A","0","F","-2"
+464,"B","-1","F","-2"
+465,"A","-1","C","1"
+466,"A","-1","C","1"
+467,"B","1","F","-2"
+468,"A","1","E","1"
+469,"B","-1","C","2"
+470,"A","-1","D","0"
+471,"B","1","F","-2"
+472,"A","-1","F","-1"
+473,"A","0","F","-1"
+474,"B","1","C","2"
+475,"B","1","D","-1"
+476,"B","0","D","0"
+477,"B","-1","D","0"
+478,"B","1","F","-1"
+479,"B","1","F","2"
+480,"B","1","F","-2"
+481,"A","1","C","0"
+482,"B","1","C","-2"
+483,"A","0","C","2"
+484,"A","1","E","-2"
+485,"A","1","E","-2"
+486,"A","-1","F","-1"
+487,"B","-1","C","2"
+488,"A","0","D","0"
+489,"B","1","C","-1"
+490,"B","1","F","-2"
+491,"A","-1","E","2"
+492,"B","0","D","1"
+493,"B","1","C","2"
+494,"A","0","C","-1"
+495,"B","0","F","-1"
+496,"A","-1","D","2"
+497,"A","-1","F","-1"
+498,"B","1","C","-1"
+499,"A","0","E","-2"
+500,"A","-1","E","-2"
+501,"B","0","E","0"
+502,"B","0","D","0"
+503,"A","-1","F","0"
+504,"B","1","F","-2"
+505,"B","-1","D","2"
+506,"B","0","F","-1"
+507,"A","1","E","1"
+508,"A","-1","C","1"
+509,"A","-1","F","1"
+510,"B","0","C","-2"
+511,"B","0","F","-1"
+512,"B","1","E","-2"
+513,"A","0","C","2"
+514,"A","-1","C","2"
+515,"B","-1","C","-1"
+516,"A","0","C","-1"
+517,"B","1","D","0"
+518,"A","-1","D","-1"
+519,"B","1","C","-2"
+520,"A","-1","F","0"
+521,"A","1","D","2"
+522,"B","1","C","-1"
+523,"A","1","F","0"
+524,"B","1","E","-2"
+525,"A","0","C","2"
+526,"A","0","E","0"
+527,"A","0","F","-2"
+528,"A","0","C","0"
+529,"B","0","F","-1"
+530,"A","-1","F","1"
+531,"A","0","C","0"
+532,"B","-1","F","-1"
+533,"A","1","F","0"
+534,"B","0","F","-2"
+535,"A","0","F","1"
+536,"B","0","E","-2"
+537,"B","-1","F","-2"
+538,"B","0","D","-1"
+539,"B","1","C","0"
+540,"B","-1","E","-2"
+541,"A","-1","E","-2"
+542,"B","1","E","-2"
+543,"A","-1","E","2"
+544,"B","0","F","-1"
+545,"B","0","C","2"
+546,"A","-1","C","2"
+547,"A","0","E","2"
+548,"B","0","C","2"
+549,"B","0","D","1"
+550,"A","1","C","-2"
+551,"B","0","F","-2"
+552,"B","1","F","-1"
+553,"A","0","E","-1"
+554,"A","1","F","0"
+555,"B","1","F","1"
+556,"B","1","E","2"
+557,"B","1","D","-1"
+558,"A","1","C","2"
+559,"B","-1","E","-1"
+560,"B","0","E","-2"
+561,"B","1","C","-1"
+562,"A","-1","E","-2"
+563,"B","1","D","-1"
+564,"B","1","C","1"
+565,"A","0","E","2"
+566,"B","1","F","-1"
+567,"B","1","F","-1"
+568,"B","0","F","-1"
+569,"B","0","F","-1"
+570,"B","0","C","1"
+571,"A","-1","E","-1"
+572,"B","-1","C","2"
+573,"B","-1","E","-1"
+574,"A","-1","C","0"
+575,"B","-1","C","2"
+576,"B","0","E","2"
+577,"B","-1","C","1"
+578,"B","1","F","-2"
+579,"A","0","C","2"
+580,"B","-1","E","2"
+581,"A","-1","F","2"
+582,"B","1","E","2"
+583,"A","0","F","-2"
+584,"B","-1","E","2"
+585,"A","0","E","0"
+586,"A","-1","F","-1"
+587,"A","-1","C","0"
+588,"A","0","F","2"
+589,"A","0","D","-2"
+590,"B","0","D","-1"
+591,"A","-1","E","2"
+592,"B","1","C","-2"
+593,"B","1","E","2"
+594,"A","-1","E","-1"
+595,"B","1","D","-1"
+596,"A","0","F","-2"
+597,"B","-1","C","0"
+598,"A","-1","C","2"
+599,"A","0","F","2"
+600,"B","0","F","2"
+601,"A","1","C","2"
+602,"A","1","E","2"
+603,"A","1","F","0"
+604,"A","1","C","-1"
+605,"A","0","E","-2"
+606,"A","-1","E","-1"
+607,"B","-1","F","0"
+608,"A","0","D","0"
+609,"A","-1","C","2"
+610,"B","-1","F","1"
+611,"B","-1","F","-2"
+612,"B","1","E","1"
+613,"B","0","E","-2"
+614,"B","1","F","-2"
+615,"B","1","F","-2"
+616,"B","1","C","0"
+617,"A","-1","F","-2"
+618,"B","0","C","-1"
+619,"A","-1","D","0"
+620,"B","0","C","2"
+621,"B","1","D","0"
+622,"B","0","D","2"
+623,"A","0","F","-2"
+624,"A","-1","E","0"
+625,"A","-1","D","-2"
+626,"A","-1","E","-2"
+627,"B","-1","C","0"
+628,"A","-1","C","2"
+629,"A","0","C","-1"
+630,"A","-1","D","2"
+631,"B","0","E","1"
+632,"A","-1","F","-1"
+633,"A","1","E","-1"
+634,"A","-1","C","0"
+635,"A","-1","E","2"
+636,"A","0","C","-2"
+637,"A","-1","D","-1"
+638,"A","-1","F","-1"
+639,"B","-1","E","-2"
+640,"B","1","D","-1"
+641,"B","0","F","-2"
+642,"A","-1","E","1"
+643,"A","-1","D","1"
+644,"A","-1","D","0"
+645,"B","0","C","1"
+646,"B","-1","E","-1"
+647,"A","1","F","1"
+648,"A","-1","E","2"
+649,"B","-1","F","2"
+650,"B","1","C","2"
+651,"A","-1","F","-2"
+652,"B","0","C","1"
+653,"B","1","F","0"
+654,"A","1","C","-1"
+655,"A","0","F","-1"
+656,"B","0","D","2"
+657,"B","-1","F","-2"
+658,"A","-1","E","-1"
+659,"B","1","D","-1"
+660,"A","0","D","0"
+661,"A","0","D","1"
+662,"B","-1","F","-2"
+663,"A","-1","E","1"
+664,"A","-1","C","-1"
+665,"B","1","C","-1"
+666,"B","-1","D","-2"
+667,"A","-1","E","-1"
+668,"B","1","E","1"
+669,"B","-1","E","-1"
+670,"A","-1","F","-2"
+671,"A","0","F","-2"
+672,"B","-1","F","-2"
+673,"A","0","C","2"
+674,"B","-1","D","0"
+675,"B","-1","C","-2"
+676,"B","-1","C","2"
+677,"A","1","D","1"
+678,"B","0","D","1"
+679,"A","-1","E","1"
+680,"B","1","F","-2"
+681,"B","1","C","-1"
+682,"B","1","C","0"
+683,"A","-1","C","2"
+684,"B","0","D","-1"
+685,"A","-1","C","1"
+686,"A","-1","D","1"
+687,"B","0","C","1"
+688,"B","1","E","2"
+689,"A","-1","C","2"
+690,"B","-1","D","0"
+691,"A","-1","C","0"
+692,"B","0","C","2"
+693,"A","0","F","1"
+694,"B","1","F","-1"
+695,"B","-1","F","2"
+696,"A","0","C","1"
+697,"A","-1","D","1"
+698,"A","-1","C","-1"
+699,"B","1","F","-2"
+700,"A","-1","E","-1"
+701,"B","-1","E","-2"
+702,"B","-1","C","2"
+703,"A","0","E","0"
+704,"B","1","C","1"
+705,"A","1","F","-1"
+706,"B","1","F","-1"
+707,"B","0","F","1"
+708,"A","-1","F","-1"
+709,"A","0","F","-2"
+710,"A","0","E","-2"
+711,"B","1","D","1"
+712,"B","1","F","0"
+713,"A","1","D","0"
+714,"A","-1","D","1"
+715,"B","0","F","-1"
+716,"B","1","F","-2"
+717,"A","-1","C","1"
+718,"A","1","C","1"
+719,"A","-1","F","-2"
+720,"B","0","C","1"
+721,"A","1","F","-2"
+722,"A","1","C","2"
+723,"B","1","C","0"
+724,"B","0","E","0"
+725,"A","-1","E","2"
+726,"B","1","D","-1"
+727,"A","-1","C","1"
+728,"B","0","E","0"
+729,"B","0","E","-2"
+730,"A","-1","F","-2"
+731,"B","-1","C","2"
+732,"A","1","C","2"
+733,"B","1","C","2"
+734,"A","-1","D","1"
+735,"A","0","C","1"
+736,"B","1","E","1"
+737,"A","1","E","2"
+738,"A","-1","F","1"
+739,"A","-1","C","2"
+740,"A","-1","C","1"
+741,"B","1","C","2"
+742,"A","0","F","1"
+743,"A","-1","C","1"
+744,"A","0","E","2"
+745,"B","1","E","1"
+746,"B","-1","E","1"
+747,"A","-1","E","2"
+748,"B","0","F","-2"
+749,"A","0","F","-2"
+750,"B","1","C","2"
+751,"A","0","F","2"
+752,"A","-1","C","2"
+753,"A","-1","C","-1"
+754,"A","1","D","1"
+755,"A","-1","D","1"
+756,"B","0","F","-2"
+757,"B","0","C","2"
+758,"B","0","C","0"
+759,"A","0","C","-1"
+760,"B","1","C","0"
+761,"B","1","E","-1"
+762,"B","-1","F","-1"
+763,"B","0","C","2"
+764,"A","0","F","0"
+765,"A","0","E","0"
+766,"B","1","C","2"
+767,"A","-1","D","1"
+768,"A","-1","F","-2"
+769,"A","0","C","1"
+770,"B","0","F","-1"
+771,"B","1","F","-2"
+772,"B","-1","E","2"
+773,"B","1","C","1"
+774,"A","-1","E","1"
+775,"B","0","C","-1"
+776,"B","-1","F","0"
+777,"B","1","C","1"
+778,"B","1","C","1"
+779,"A","1","D","1"
+780,"B","0","C","-2"
+781,"A","0","D","2"
+782,"B","1","C","1"
+783,"A","0","D","0"
+784,"A","-1","D","2"
+785,"B","-1","D","1"
+786,"A","-1","E","-2"
+787,"B","1","C","0"
+788,"A","-1","E","-2"
+789,"B","1","C","-2"
+790,"A","-1","C","-1"
+791,"B","0","F","-1"
+792,"A","0","C","0"
+793,"A","-1","D","0"
+794,"B","1","E","-1"
+795,"B","1","C","-1"
+796,"A","0","C","-2"
+797,"A","-1","F","1"
+798,"A","0","F","0"
+799,"A","0","F","1"
+800,"B","0","F","-1"
+801,"B","0","E","2"
+802,"A","-1","C","2"
+803,"A","1","D","0"
+804,"A","1","C","1"
+805,"A","-1","C","1"
+806,"B","1","D","-1"
+807,"A","0","F","-2"
+808,"B","-1","F","0"
+809,"B","0","F","-1"
+810,"A","-1","F","1"
+811,"A","-1","C","2"
+812,"B","0","D","1"
+813,"A","-1","E","2"
+814,"A","1","E","2"
+815,"B","1","F","-2"
+816,"B","1","F","2"
+817,"A","-1","F","-2"
+818,"B","1","C","1"
+819,"A","-1","D","-2"
+820,"B","1","C","1"
+821,"B","1","F","1"
+822,"B","0","D","0"
+823,"A","1","C","1"
+824,"A","0","E","0"
+825,"B","1","E","1"
+826,"A","0","E","2"
+827,"A","0","E","-2"
+828,"A","0","C","0"
+829,"B","-1","F","-2"
+830,"A","1","D","0"
+831,"B","0","C","1"
+832,"A","-1","D","1"
+833,"B","1","C","0"
+834,"A","-1","E","1"
+835,"A","1","E","-2"
+836,"B","0","F","-2"
+837,"A","-1","F","-2"
+838,"A","-1","C","2"
+839,"B","-1","F","1"
+840,"A","-1","E","2"
+841,"A","-1","C","0"
+842,"A","1","C","0"
+843,"A","0","F","0"
+844,"A","0","F","-2"
+845,"A","0","E","-2"
+846,"B","-1","E","2"
+847,"B","1","E","-1"
+848,"A","-1","C","1"
+849,"A","-1","F","0"
+850,"B","1","E","1"
+851,"B","1","D","0"
+852,"B","-1","E","1"
+853,"B","1","F","-2"
+854,"B","1","E","-1"
+855,"B","-1","D","-2"
+856,"A","-1","C","1"
+857,"B","0","C","1"
+858,"B","1","D","-1"
+859,"B","0","F","1"
+860,"A","-1","F","-2"
+861,"A","-1","F","0"
+862,"B","1","D","-1"
+863,"B","1","F","-2"
+864,"A","-1","C","2"
+865,"A","-1","D","1"
+866,"A","0","E","1"
+867,"A","0","D","-1"
+868,"A","0","C","-1"
+869,"A","-1","F","-2"
+870,"A","0","D","-1"
+871,"A","0","C","2"
+872,"B","0","F","1"
+873,"A","-1","E","-1"
+874,"B","0","C","1"
+875,"A","0","F","1"
+876,"B","1","E","1"
+877,"A","-1","F","-2"
+878,"A","-1","D","1"
+879,"A","0","E","1"
+880,"B","0","F","1"
+881,"A","-1","E","2"
+882,"B","0","F","-2"
+883,"A","-1","C","2"
+884,"B","0","D","2"
+885,"A","-1","C","0"
+886,"A","-1","C","-2"
+887,"A","-1","F","-2"
+888,"B","0","C","1"
+889,"B","1","C","-1"
+890,"A","0","F","0"
+891,"A","0","F","1"
+892,"A","-1","D","-2"
+893,"B","0","F","2"
+894,"B","1","E","-2"
+895,"A","0","C","-2"
+896,"A","-1","C","0"
+897,"A","0","F","-2"
+898,"A","-1","E","1"
+899,"A","1","F","-2"
+900,"A","-1","D","1"
+901,"A","0","E","1"
+902,"B","1","F","-1"
+903,"A","-1","E","-2"
+904,"A","-1","F","0"
+905,"A","-1","F","-1"
+906,"A","-1","F","-2"
+907,"B","1","C","2"
+908,"A","-1","D","2"
+909,"B","-1","E","-2"
+910,"A","-1","D","-1"
+911,"B","0","D","1"
+912,"B","0","C","2"
+913,"B","1","C","2"
+914,"B","1","C","-2"
+915,"A","-1","E","-2"
+916,"B","1","F","-2"
+917,"A","-1","F","-1"
+918,"B","0","D","2"
+919,"B","-1","E","-2"
+920,"A","0","D","-2"
+921,"A","-1","F","0"
+922,"A","1","F","1"
+923,"B","1","C","-1"
+924,"B","-1","C","-2"
+925,"B","0","F","0"
+926,"B","1","F","-1"
+927,"B","1","F","0"
+928,"A","-1","F","-2"
+929,"A","-1","C","-2"
+930,"A","1","C","-2"
+931,"A","-1","C","1"
+932,"A","-1","C","0"
+933,"A","-1","D","1"
+934,"A","0","C","-1"
+935,"A","-1","E","2"
+936,"B","-1","D","0"
+937,"B","0","C","1"
+938,"B","1","C","2"
+939,"A","0","D","0"
+940,"B","0","E","2"
+941,"B","1","E","-2"
+942,"A","1","F","-2"
+943,"A","1","F","-1"
+944,"A","0","F","-2"
+945,"A","-1","E","1"
+946,"A","0","C","-2"
+947,"A","-1","C","2"
+948,"A","-1","C","2"
+949,"A","-1","F","-2"
+950,"B","0","C","-1"
+951,"B","-1","F","-1"
+952,"A","-1","E","-2"
+953,"A","0","E","-2"
+954,"B","1","F","0"
+955,"B","1","D","1"
+956,"A","-1","C","2"
+957,"A","-1","E","-1"
+958,"A","0","C","2"
+959,"A","0","D","-2"
+960,"A","-1","F","-1"
+961,"B","0","C","2"
+962,"A","-1","F","1"
+963,"A","-1","F","1"
+964,"B","-1","D","0"
+965,"A","-1","F","0"
+966,"B","0","F","-1"
+967,"B","-1","F","-1"
+968,"A","0","C","2"
+969,"A","0","C","0"
+970,"B","1","F","-2"
+971,"B","-1","E","-1"
+972,"B","0","C","1"
+973,"A","-1","C","0"
+974,"B","1","C","2"
+975,"B","1","F","0"
+976,"A","1","E","-1"
+977,"B","0","C","2"
+978,"A","0","C","1"
+979,"A","0","F","-1"
+980,"A","0","E","-2"
+981,"A","0","F","0"
+982,"A","0","D","1"
+983,"B","-1","C","-1"
+984,"A","1","C","-2"
+985,"B","-1","F","-2"
+986,"A","0","F","0"
+987,"A","0","F","-2"
+988,"B","-1","F","0"
+989,"A","0","E","-2"
+990,"B","0","C","2"
+991,"A","-1","C","0"
+992,"A","-1","C","1"
+993,"B","0","D","-1"
+994,"B","0","D","1"
+995,"B","-1","C","-1"
+996,"B","1","F","-2"
+997,"B","1","C","2"
+998,"B","0","D","2"
+999,"B","1","C","-1"
+1000,"B","0","F","2"
+1001,"B","1","D","1"
+1002,"A","0","C","-2"
+1003,"B","1","F","-2"
+1004,"A","-1","C","1"
+1005,"B","0","F","-1"
+1006,"A","1","E","-2"
+1007,"B","1","E","1"
+1008,"B","0","E","2"
+1009,"B","0","C","1"
+1010,"A","1","C","2"
+1011,"A","-1","F","-1"
+1012,"A","0","E","-1"
+1013,"A","-1","C","1"
+1014,"A","0","D","-2"
+1015,"A","-1","C","-1"
+1016,"A","-1","C","1"
+1017,"B","1","F","0"
+1018,"A","-1","E","-2"
+1019,"A","1","D","-2"
+1020,"A","-1","C","1"
+1021,"B","-1","C","2"
+1022,"B","1","E","2"
+1023,"A","-1","F","-1"
+1024,"B","0","E","2"
diff --git a/longitudinal.csv b/longitudinal.csv
new file mode 100644
index 0000000..8f01b3e
--- /dev/null
+++ b/longitudinal.csv
@@ -0,0 +1,1025 @@
+"subject","time","event"
+1,5,"C"
+1,7,"B"
+1,15,"D"
+1,20,"B"
+1,24,"C"
+1,32,"C"
+1,40,"C"
+1,45,"C"
+1,51,"C"
+1,57,"C"
+1,65,"D"
+1,70,"D"
+1,74,"C"
+1,75,"D"
+1,83,"A"
+1,86,"C"
+1,89,"B"
+1,91,"B"
+1,92,"C"
+1,94,"A"
+1,99,"C"
+1,106,"D"
+2,7,"D"
+2,10,"D"
+2,15,"C"
+2,22,"A"
+2,27,"E"
+2,28,"E"
+2,36,"D"
+2,41,"B"
+2,44,"B"
+2,48,"A"
+2,51,"C"
+2,56,"C"
+2,57,"C"
+2,59,"C"
+2,61,"E"
+2,69,"D"
+2,77,"B"
+2,85,"C"
+2,90,"C"
+3,1,"C"
+3,3,"A"
+3,7,"C"
+3,11,"C"
+3,14,"C"
+3,22,"D"
+3,28,"C"
+3,29,"E"
+3,30,"C"
+3,32,"C"
+3,39,"C"
+3,45,"E"
+4,1,"C"
+4,7,"C"
+4,15,"C"
+4,22,"C"
+4,30,"B"
+4,32,"D"
+4,35,"C"
+4,40,"E"
+4,46,"C"
+4,53,"A"
+4,55,"C"
+4,63,"D"
+4,69,"C"
+5,7,"B"
+5,14,"A"
+5,19,"B"
+5,24,"B"
+5,26,"E"
+5,31,"D"
+5,37,"B"
+5,43,"C"
+5,48,"D"
+5,52,"B"
+5,53,"C"
+5,54,"B"
+5,61,"C"
+5,68,"D"
+5,75,"C"
+5,83,"C"
+6,5,"C"
+6,9,"C"
+6,15,"C"
+6,16,"E"
+6,21,"C"
+6,26,"C"
+6,34,"C"
+6,42,"C"
+6,43,"B"
+6,45,"C"
+6,50,"C"
+6,58,"B"
+6,59,"D"
+6,67,"C"
+6,74,"B"
+6,82,"C"
+6,90,"C"
+6,98,"C"
+6,105,"B"
+7,2,"C"
+7,4,"E"
+7,11,"E"
+7,16,"B"
+7,21,"C"
+7,25,"B"
+7,27,"C"
+8,3,"D"
+8,4,"D"
+8,9,"C"
+8,14,"C"
+8,20,"E"
+8,25,"D"
+8,30,"D"
+8,32,"A"
+8,34,"E"
+8,40,"A"
+8,48,"E"
+8,56,"C"
+8,62,"C"
+8,70,"C"
+8,78,"C"
+8,80,"C"
+9,6,"D"
+9,7,"A"
+9,10,"D"
+9,16,"C"
+9,18,"C"
+9,21,"B"
+9,27,"C"
+9,31,"D"
+9,36,"B"
+9,39,"B"
+9,44,"D"
+9,52,"C"
+9,58,"B"
+9,61,"D"
+10,7,"C"
+10,13,"B"
+10,17,"A"
+10,23,"D"
+10,28,"B"
+10,35,"A"
+10,36,"D"
+10,42,"D"
+10,45,"D"
+10,53,"B"
+10,57,"A"
+10,62,"C"
+10,69,"A"
+10,77,"B"
+10,80,"C"
+10,83,"D"
+10,88,"C"
+11,4,"E"
+11,11,"A"
+11,14,"E"
+11,15,"D"
+11,22,"C"
+11,30,"C"
+11,32,"C"
+11,39,"E"
+11,42,"C"
+11,45,"D"
+11,46,"C"
+11,47,"C"
+11,48,"C"
+11,55,"B"
+11,63,"B"
+11,64,"B"
+11,71,"C"
+11,72,"D"
+12,5,"D"
+12,9,"C"
+12,10,"C"
+12,14,"C"
+12,15,"C"
+12,19,"B"
+12,27,"E"
+12,35,"D"
+12,37,"C"
+12,42,"A"
+12,45,"C"
+12,47,"C"
+12,54,"C"
+12,56,"C"
+12,57,"C"
+12,63,"D"
+12,66,"C"
+12,70,"D"
+12,72,"C"
+12,73,"C"
+12,75,"C"
+12,80,"C"
+13,5,"C"
+13,9,"C"
+13,14,"A"
+13,18,"B"
+13,23,"C"
+13,27,"C"
+13,30,"E"
+13,37,"B"
+13,40,"E"
+13,43,"C"
+13,46,"C"
+13,49,"C"
+13,52,"C"
+13,59,"B"
+13,63,"B"
+13,64,"A"
+13,68,"A"
+13,76,"C"
+14,7,"D"
+14,10,"C"
+14,15,"C"
+14,20,"E"
+14,23,"C"
+14,24,"C"
+14,27,"C"
+14,30,"B"
+14,31,"B"
+14,34,"D"
+14,36,"C"
+14,38,"E"
+14,46,"A"
+14,48,"C"
+14,54,"B"
+14,56,"C"
+14,63,"B"
+14,64,"C"
+14,65,"C"
+14,69,"B"
+14,72,"B"
+15,7,"C"
+15,15,"C"
+15,16,"C"
+15,18,"C"
+15,22,"E"
+15,30,"D"
+15,33,"C"
+15,35,"C"
+15,43,"C"
+15,44,"C"
+15,48,"C"
+15,49,"C"
+15,53,"C"
+15,57,"D"
+15,63,"D"
+15,68,"D"
+15,70,"D"
+15,78,"D"
+15,83,"B"
+15,84,"C"
+16,1,"C"
+16,2,"A"
+16,5,"C"
+16,7,"D"
+16,9,"A"
+16,12,"C"
+16,13,"C"
+16,16,"D"
+16,24,"D"
+16,27,"C"
+16,32,"C"
+16,40,"B"
+16,42,"C"
+16,50,"C"
+16,58,"B"
+16,62,"C"
+16,69,"C"
+16,77,"C"
+16,82,"B"
+17,3,"D"
+17,10,"A"
+17,13,"B"
+17,21,"C"
+17,27,"D"
+17,28,"C"
+17,33,"D"
+17,36,"B"
+17,39,"A"
+17,40,"C"
+18,6,"B"
+18,9,"C"
+18,14,"C"
+18,22,"C"
+18,25,"C"
+18,33,"B"
+18,39,"B"
+18,40,"D"
+18,44,"D"
+18,52,"E"
+18,56,"D"
+19,7,"C"
+19,9,"E"
+19,13,"E"
+19,15,"C"
+19,20,"A"
+19,23,"C"
+19,28,"A"
+19,33,"C"
+19,34,"E"
+19,39,"A"
+19,43,"A"
+19,46,"D"
+19,51,"C"
+19,53,"A"
+19,56,"B"
+19,64,"B"
+20,6,"B"
+20,10,"D"
+20,11,"B"
+20,12,"D"
+20,19,"D"
+20,22,"C"
+20,25,"C"
+20,32,"C"
+20,38,"B"
+20,44,"B"
+20,45,"B"
+20,52,"E"
+20,55,"D"
+20,58,"A"
+20,65,"B"
+20,66,"C"
+21,6,"C"
+21,10,"A"
+21,17,"D"
+21,23,"E"
+21,24,"D"
+21,27,"C"
+21,35,"C"
+21,38,"B"
+21,40,"C"
+21,42,"B"
+21,47,"B"
+21,51,"D"
+21,55,"C"
+21,62,"E"
+21,67,"C"
+22,5,"A"
+22,7,"C"
+22,9,"C"
+22,17,"D"
+22,20,"D"
+22,21,"C"
+22,27,"B"
+22,35,"C"
+22,41,"A"
+22,45,"D"
+22,47,"D"
+22,52,"D"
+22,57,"C"
+23,5,"D"
+23,10,"C"
+23,17,"C"
+23,23,"C"
+23,31,"B"
+23,37,"B"
+23,42,"D"
+23,43,"C"
+23,48,"C"
+23,51,"E"
+23,58,"C"
+23,61,"B"
+23,65,"C"
+24,4,"D"
+24,5,"E"
+24,10,"C"
+24,12,"E"
+24,18,"D"
+24,23,"B"
+24,28,"B"
+24,29,"C"
+24,31,"A"
+24,33,"B"
+24,35,"D"
+24,36,"C"
+24,42,"C"
+25,4,"A"
+25,7,"B"
+25,13,"A"
+25,18,"B"
+25,25,"B"
+25,29,"C"
+25,34,"C"
+25,37,"D"
+25,40,"C"
+25,43,"D"
+25,45,"C"
+25,48,"D"
+26,2,"B"
+26,7,"D"
+26,15,"E"
+26,17,"D"
+26,21,"C"
+26,26,"E"
+26,32,"C"
+26,34,"C"
+26,36,"C"
+26,37,"C"
+27,6,"C"
+27,14,"B"
+27,16,"D"
+27,23,"D"
+27,28,"E"
+27,30,"C"
+27,36,"B"
+27,40,"E"
+27,42,"D"
+27,43,"C"
+27,48,"E"
+27,56,"C"
+27,58,"E"
+27,62,"D"
+27,65,"C"
+27,72,"C"
+28,2,"B"
+28,7,"D"
+28,10,"C"
+28,12,"D"
+28,18,"C"
+28,22,"C"
+28,24,"E"
+28,25,"C"
+28,30,"C"
+28,38,"B"
+28,44,"C"
+28,49,"D"
+28,55,"E"
+28,58,"B"
+28,64,"B"
+29,1,"C"
+29,9,"E"
+29,12,"C"
+29,16,"A"
+29,24,"D"
+29,29,"C"
+29,30,"D"
+29,38,"A"
+29,46,"C"
+29,49,"A"
+29,52,"C"
+29,57,"C"
+29,59,"E"
+29,63,"C"
+29,64,"D"
+30,3,"E"
+30,11,"D"
+30,18,"A"
+30,23,"D"
+30,29,"B"
+30,37,"B"
+30,43,"D"
+30,51,"C"
+30,55,"E"
+30,59,"C"
+30,66,"C"
+30,70,"C"
+30,78,"C"
+30,84,"C"
+30,85,"B"
+30,93,"E"
+30,98,"C"
+30,101,"E"
+30,109,"C"
+30,110,"C"
+30,117,"B"
+30,118,"B"
+30,120,"A"
+30,127,"C"
+31,2,"E"
+31,9,"E"
+31,13,"B"
+31,14,"C"
+31,22,"C"
+31,28,"E"
+31,33,"B"
+31,39,"B"
+31,45,"C"
+31,46,"C"
+31,53,"C"
+31,58,"A"
+31,64,"D"
+31,67,"B"
+31,70,"A"
+31,74,"D"
+31,78,"D"
+32,3,"B"
+32,4,"C"
+32,7,"E"
+32,12,"E"
+32,18,"A"
+32,24,"B"
+32,31,"C"
+32,37,"B"
+32,45,"C"
+32,47,"D"
+32,49,"C"
+32,50,"D"
+32,51,"A"
+32,55,"D"
+32,62,"B"
+32,68,"D"
+33,7,"B"
+33,14,"E"
+33,22,"D"
+33,29,"D"
+33,33,"A"
+33,40,"C"
+33,41,"C"
+33,49,"E"
+33,56,"B"
+33,59,"C"
+33,63,"A"
+34,4,"C"
+34,6,"D"
+34,12,"B"
+34,13,"B"
+34,21,"B"
+34,29,"B"
+34,35,"D"
+34,41,"C"
+34,48,"B"
+34,53,"A"
+34,54,"B"
+34,55,"B"
+34,57,"C"
+34,62,"D"
+34,66,"E"
+34,74,"D"
+35,7,"D"
+35,15,"C"
+35,23,"B"
+35,29,"B"
+35,30,"B"
+35,38,"D"
+35,45,"A"
+35,52,"C"
+35,59,"C"
+35,65,"A"
+36,8,"A"
+36,12,"E"
+36,13,"B"
+36,20,"D"
+36,25,"C"
+36,29,"D"
+36,37,"C"
+36,45,"C"
+36,51,"D"
+36,53,"C"
+36,58,"C"
+36,59,"E"
+36,65,"B"
+37,6,"B"
+37,8,"E"
+37,12,"D"
+37,13,"B"
+37,14,"D"
+37,19,"C"
+37,24,"C"
+37,28,"B"
+37,33,"C"
+37,36,"A"
+37,37,"C"
+38,4,"C"
+38,6,"D"
+38,14,"B"
+38,18,"C"
+38,19,"C"
+38,26,"B"
+38,29,"E"
+38,30,"D"
+38,34,"C"
+38,41,"C"
+38,49,"B"
+38,53,"C"
+38,60,"C"
+38,62,"B"
+38,65,"E"
+38,73,"C"
+38,81,"D"
+39,1,"D"
+39,4,"C"
+39,6,"D"
+39,9,"B"
+39,14,"B"
+39,20,"D"
+39,26,"C"
+39,29,"C"
+39,32,"C"
+39,33,"B"
+39,39,"D"
+39,41,"C"
+39,42,"D"
+39,50,"A"
+39,58,"C"
+39,62,"B"
+39,69,"C"
+40,3,"B"
+40,10,"D"
+40,16,"C"
+40,23,"D"
+40,30,"B"
+40,37,"D"
+40,44,"C"
+40,52,"B"
+40,59,"B"
+40,60,"C"
+40,61,"E"
+40,64,"B"
+41,3,"C"
+41,11,"E"
+41,14,"A"
+41,22,"C"
+41,24,"A"
+41,32,"D"
+41,34,"B"
+41,35,"D"
+41,39,"C"
+41,44,"C"
+41,51,"C"
+41,52,"C"
+41,59,"A"
+41,61,"C"
+41,64,"C"
+41,65,"D"
+41,68,"C"
+42,3,"C"
+42,8,"C"
+42,12,"C"
+42,15,"A"
+42,18,"B"
+42,26,"D"
+42,29,"D"
+42,33,"C"
+42,39,"C"
+42,47,"A"
+42,48,"C"
+42,52,"C"
+42,55,"C"
+42,58,"D"
+42,61,"B"
+42,62,"D"
+42,68,"D"
+42,70,"C"
+42,77,"B"
+42,84,"B"
+43,6,"B"
+43,10,"C"
+43,18,"A"
+43,19,"E"
+43,23,"C"
+43,30,"E"
+43,31,"E"
+43,34,"C"
+43,40,"B"
+43,46,"C"
+43,53,"C"
+43,60,"C"
+43,67,"C"
+43,74,"C"
+43,82,"B"
+43,86,"A"
+44,3,"D"
+44,11,"C"
+44,19,"C"
+44,25,"C"
+44,33,"C"
+44,40,"B"
+44,43,"B"
+44,47,"A"
+44,54,"C"
+44,62,"A"
+44,68,"C"
+44,76,"D"
+44,83,"B"
+44,88,"C"
+44,89,"D"
+44,90,"C"
+45,8,"C"
+45,16,"E"
+45,21,"D"
+45,23,"C"
+45,27,"E"
+45,34,"C"
+45,40,"E"
+45,42,"B"
+45,44,"E"
+45,50,"C"
+45,52,"D"
+45,59,"B"
+45,62,"E"
+46,4,"D"
+46,7,"E"
+46,10,"A"
+46,14,"A"
+46,15,"E"
+46,16,"B"
+46,23,"D"
+46,27,"B"
+46,29,"C"
+46,32,"C"
+46,37,"C"
+46,38,"D"
+46,39,"B"
+46,45,"A"
+46,47,"A"
+46,53,"C"
+46,54,"E"
+46,61,"D"
+46,67,"C"
+46,69,"C"
+47,5,"A"
+47,10,"C"
+47,15,"C"
+47,21,"C"
+47,26,"D"
+47,32,"B"
+47,37,"B"
+47,42,"C"
+47,48,"C"
+47,55,"E"
+47,58,"C"
+47,66,"A"
+47,73,"B"
+47,80,"C"
+47,88,"D"
+47,96,"C"
+47,103,"D"
+47,107,"B"
+47,113,"C"
+48,3,"C"
+48,9,"C"
+48,16,"E"
+48,21,"C"
+48,27,"A"
+48,28,"C"
+48,34,"D"
+48,39,"A"
+48,42,"C"
+48,46,"C"
+48,48,"B"
+48,53,"B"
+48,55,"E"
+48,61,"D"
+48,68,"B"
+48,74,"D"
+48,75,"E"
+48,79,"C"
+48,84,"C"
+48,89,"B"
+48,95,"B"
+48,97,"A"
+48,104,"A"
+48,107,"B"
+48,112,"B"
+49,7,"A"
+49,14,"B"
+49,21,"A"
+49,22,"A"
+49,30,"C"
+49,35,"C"
+49,42,"E"
+49,44,"B"
+49,52,"A"
+49,59,"E"
+49,63,"C"
+49,68,"B"
+49,71,"B"
+49,73,"B"
+49,76,"D"
+49,78,"E"
+49,86,"B"
+49,91,"C"
+50,7,"C"
+50,9,"C"
+50,13,"B"
+50,21,"C"
+50,23,"B"
+50,24,"C"
+50,30,"C"
+50,38,"B"
+50,46,"C"
+50,50,"B"
+50,51,"C"
+50,57,"B"
+50,61,"D"
+50,62,"C"
+50,63,"B"
+50,69,"D"
+51,4,"C"
+51,5,"D"
+51,10,"C"
+51,18,"D"
+51,24,"B"
+51,31,"C"
+51,39,"B"
+51,47,"C"
+51,51,"A"
+51,54,"C"
+51,61,"C"
+51,68,"E"
+51,72,"B"
+51,79,"D"
+51,86,"B"
+51,94,"C"
+51,95,"B"
+51,96,"A"
+52,5,"E"
+52,9,"D"
+52,12,"C"
+52,13,"C"
+52,18,"C"
+52,26,"D"
+52,29,"B"
+52,36,"C"
+52,40,"C"
+52,45,"A"
+52,51,"D"
+52,56,"A"
+52,64,"B"
+52,68,"C"
+52,75,"A"
+52,78,"B"
+52,79,"D"
+52,85,"A"
+53,7,"C"
+53,11,"C"
+53,17,"D"
+53,21,"C"
+53,24,"B"
+53,31,"B"
+53,38,"D"
+53,39,"C"
+53,40,"C"
+53,47,"B"
+53,48,"B"
+53,50,"D"
+53,52,"D"
+53,56,"D"
+53,58,"D"
+54,2,"A"
+54,3,"A"
+54,6,"C"
+54,7,"C"
+54,14,"B"
+54,22,"B"
+54,29,"C"
+54,33,"C"
+54,40,"B"
+54,41,"B"
+54,45,"B"
+54,47,"C"
+54,49,"A"
+54,50,"C"
+54,56,"B"
+54,64,"E"
+54,68,"B"
+54,73,"B"
+54,79,"C"
+54,80,"C"
+54,82,"B"
+54,90,"D"
+55,7,"D"
+55,15,"D"
+55,20,"B"
+55,26,"D"
+55,28,"C"
+55,35,"D"
+55,40,"D"
+55,44,"C"
+55,46,"B"
+55,49,"D"
+55,56,"D"
+55,64,"A"
+55,69,"C"
+55,70,"B"
+55,72,"D"
+55,75,"E"
+56,8,"C"
+56,9,"C"
+56,17,"A"
+56,25,"D"
+56,28,"D"
+56,32,"C"
+56,38,"D"
+56,42,"C"
+56,48,"B"
+56,54,"C"
+56,60,"C"
+56,63,"C"
+56,68,"C"
+56,69,"E"
+56,72,"C"
+56,80,"A"
+56,84,"D"
+56,88,"D"
+56,89,"C"
+56,95,"B"
+56,103,"C"
+56,111,"C"
+56,112,"C"
+56,113,"C"
+57,3,"D"
+57,11,"C"
+57,14,"E"
+57,22,"D"
+57,29,"D"
+57,30,"B"
+57,33,"C"
+57,39,"D"
+57,43,"A"
+57,48,"D"
+57,55,"B"
+57,61,"C"
+57,62,"C"
+57,68,"B"
+57,69,"B"
+57,73,"C"
+57,77,"C"
+57,80,"E"
+58,7,"E"
+58,8,"B"
+58,16,"C"
+58,18,"C"
+58,26,"C"
+58,28,"E"
+58,30,"C"
+58,33,"B"
+58,34,"C"
+58,36,"B"
+58,41,"D"
+58,49,"C"
+59,1,"D"
+59,9,"D"
+59,12,"D"
+59,18,"C"
+59,22,"B"
+59,24,"C"
+59,25,"D"
+59,27,"C"
+59,34,"C"
+59,39,"D"
+59,41,"C"
+59,42,"E"
+59,49,"E"
+59,54,"E"
+59,61,"A"
+59,64,"D"
+59,66,"D"
+59,71,"B"
+59,75,"B"
+59,76,"D"
+59,78,"A"
+60,7,"C"
+60,13,"C"
+60,16,"D"
+60,18,"B"
+60,26,"B"
+60,31,"C"
+60,33,"C"
+60,35,"D"
+60,40,"C"
+61,4,"C"
+61,8,"B"
+61,14,"A"
+61,17,"B"
+61,18,"C"
+61,24,"D"
+61,32,"C"
+61,34,"C"
+61,36,"D"
+61,43,"D"
+61,50,"E"
+61,56,"C"
+61,57,"A"
+62,6,"A"
+62,12,"C"
+62,15,"D"
+62,21,"C"
+62,27,"C"
+62,35,"D"
+62,38,"B"
+62,39,"E"
+62,47,"A"
+62,49,"C"
+62,50,"D"
+62,57,"D"
+62,58,"A"
+63,4,"A"
+63,10,"C"
+63,14,"D"
+63,18,"E"
+63,26,"C"
+63,32,"C"
+63,37,"C"
+63,39,"C"
+63,47,"B"
+63,49,"C"
+63,57,"E"
+63,64,"D"
+63,70,"B"
+63,77,"C"
+63,82,"B"
+64,2,"D"
+64,6,"C"
+64,11,"C"
+64,15,"C"
+64,21,"C"
+64,23,"C"
+64,27,"C"
+64,30,"C"
+64,36,"C"
+64,41,"E"
+64,43,"B"
+64,45,"D"
+64,50,"C"
+64,57,"C"
+64,62,"C"
+64,70,"E"
+64,77,"C"
+64,85,"D"
diff --git a/simple-data-generation.ipynb b/simple-data-generation.ipynb
index 7cb5e68..4d208b4 100644
--- a/simple-data-generation.ipynb
+++ b/simple-data-generation.ipynb
@@ -2,23 +2,31 @@
"cells": [
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"# Simple Data Generation for Tableau"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
- "We will store the data in a data frame to aid with exporting to a \\*.csv file"
+ "We will store the data in data frames to aid with exporting to \\*.csv files"
]
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 3,
"metadata": {
- "collapsed": true
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [],
"source": [
@@ -27,8 +35,13 @@
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
+ "## Time to First Event Data\n",
+ "\n",
"We initialize the data frame with 3 columns and 1024 samples\n",
"\n",
"1. The first column contains the subject `subject`, randomly selected from 64 identifiers.\n",
@@ -38,373 +51,464 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 14,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [
{
"data": {
"text/html": [
- "
| subject | time | event |
---|
1 | 1 | 6 | A |
---|
2 | 1 | 14 | A |
---|
3 | 1 | 21 | D |
---|
4 | 1 | 24 | A |
---|
5 | 1 | 26 | B |
---|
6 | 1 | 31 | C |
---|
7 | 1 | 32 | B |
---|
8 | 1 | 37 | C |
---|
9 | 1 | 41 | D |
---|
10 | 1 | 48 | C |
---|
11 | 1 | 53 | B |
---|
12 | 1 | 58 | C |
---|
13 | 1 | 62 | B |
---|
14 | 2 | 64 | C |
---|
15 | 2 | 72 | C |
---|
16 | 2 | 74 | B |
---|
17 | 2 | 76 | D |
---|
18 | 2 | 84 | A |
---|
19 | 2 | 87 | D |
---|
20 | 2 | 89 | B |
---|
21 | 2 | 91 | D |
---|
22 | 3 | 97 | E |
---|
23 | 3 | 104 | C |
---|
24 | 3 | 105 | D |
---|
25 | 3 | 111 | D |
---|
26 | 3 | 115 | A |
---|
27 | 3 | 119 | E |
---|
28 | 3 | 122 | B |
---|
29 | 3 | 129 | C |
---|
30 | 3 | 131 | C |
---|
⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | subject | time | event |
---|
1 | 1 | 5 | C |
---|
2 | 1 | 7 | B |
---|
3 | 1 | 15 | D |
---|
4 | 1 | 20 | B |
---|
5 | 1 | 24 | C |
---|
6 | 1 | 32 | C |
---|
7 | 1 | 40 | C |
---|
8 | 1 | 45 | C |
---|
"
],
"text/plain": [
- "1024×3 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │\n",
- "├──────┼─────────┼──────┼───────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │\n",
- "│ 2 │ 1 │ 14 │ 'A' │\n",
- "│ 3 │ 1 │ 21 │ 'D' │\n",
- "│ 4 │ 1 │ 24 │ 'A' │\n",
- "│ 5 │ 1 │ 26 │ 'B' │\n",
- "│ 6 │ 1 │ 31 │ 'C' │\n",
- "│ 7 │ 1 │ 32 │ 'B' │\n",
- "│ 8 │ 1 │ 37 │ 'C' │\n",
- "│ 9 │ 1 │ 41 │ 'D' │\n",
- "│ 10 │ 1 │ 48 │ 'C' │\n",
- "│ 11 │ 1 │ 53 │ 'B' │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 4561 │ 'C' │\n",
- "│ 1014 │ 64 │ 4569 │ 'C' │\n",
- "│ 1015 │ 64 │ 4570 │ 'E' │\n",
- "│ 1016 │ 64 │ 4574 │ 'C' │\n",
- "│ 1017 │ 64 │ 4579 │ 'D' │\n",
- "│ 1018 │ 64 │ 4584 │ 'C' │\n",
- "│ 1019 │ 64 │ 4588 │ 'A' │\n",
- "│ 1020 │ 64 │ 4590 │ 'C' │\n",
- "│ 1021 │ 64 │ 4592 │ 'D' │\n",
- "│ 1022 │ 64 │ 4599 │ 'B' │\n",
- "│ 1023 │ 64 │ 4601 │ 'B' │\n",
- "│ 1024 │ 64 │ 4603 │ 'C' │"
+ "8×3 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │\n",
+ "├─────┼─────────┼──────┼───────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │"
]
},
- "execution_count": 25,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata = DataFrame(\n",
+ "longitudinal = DataFrame(\n",
" subject = sort(rand(1:64, 1024)),\n",
" time = cumsum(rand(1:8, 1024)),\n",
" event = rand(['A', 'B', 'B', 'C', 'C', 'C', 'C', 'D', 'D', 'E'], 1024)\n",
- ")"
+ ");\n",
+ "longitudinal[1:8, :]"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"Notice that the time is increasing across all subjects. Instead we want to be the cumulative sum strictly within each subject. To accomplish this we use logical indexing to pull the last time from each subject and subtract it from the times of the next subject."
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"First find the logic index of the row before the subject changed."
]
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 15,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [
{
"data": {
"text/html": [
- " | subject | time | event | before |
---|
1 | 1 | 6 | A | false |
---|
2 | 1 | 14 | A | false |
---|
3 | 1 | 21 | D | false |
---|
4 | 1 | 24 | A | false |
---|
5 | 1 | 26 | B | false |
---|
6 | 1 | 31 | C | false |
---|
7 | 1 | 32 | B | false |
---|
8 | 1 | 37 | C | false |
---|
9 | 1 | 41 | D | false |
---|
10 | 1 | 48 | C | false |
---|
11 | 1 | 53 | B | false |
---|
12 | 1 | 58 | C | false |
---|
13 | 1 | 62 | B | true |
---|
14 | 2 | 64 | C | false |
---|
15 | 2 | 72 | C | false |
---|
16 | 2 | 74 | B | false |
---|
17 | 2 | 76 | D | false |
---|
18 | 2 | 84 | A | false |
---|
19 | 2 | 87 | D | false |
---|
20 | 2 | 89 | B | false |
---|
21 | 2 | 91 | D | true |
---|
22 | 3 | 97 | E | false |
---|
23 | 3 | 104 | C | false |
---|
24 | 3 | 105 | D | false |
---|
25 | 3 | 111 | D | false |
---|
26 | 3 | 115 | A | false |
---|
27 | 3 | 119 | E | false |
---|
28 | 3 | 122 | B | false |
---|
29 | 3 | 129 | C | false |
---|
30 | 3 | 131 | C | false |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | subject | time | event | before |
---|
1 | 1 | 5 | C | false |
---|
2 | 1 | 7 | B | false |
---|
3 | 1 | 15 | D | false |
---|
4 | 1 | 20 | B | false |
---|
5 | 1 | 24 | C | false |
---|
6 | 1 | 32 | C | false |
---|
7 | 1 | 40 | C | false |
---|
8 | 1 | 45 | C | false |
---|
"
],
"text/plain": [
- "1024×4 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │ before │\n",
- "├──────┼─────────┼──────┼───────┼────────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │ false │\n",
- "│ 2 │ 1 │ 14 │ 'A' │ false │\n",
- "│ 3 │ 1 │ 21 │ 'D' │ false │\n",
- "│ 4 │ 1 │ 24 │ 'A' │ false │\n",
- "│ 5 │ 1 │ 26 │ 'B' │ false │\n",
- "│ 6 │ 1 │ 31 │ 'C' │ false │\n",
- "│ 7 │ 1 │ 32 │ 'B' │ false │\n",
- "│ 8 │ 1 │ 37 │ 'C' │ false │\n",
- "│ 9 │ 1 │ 41 │ 'D' │ false │\n",
- "│ 10 │ 1 │ 48 │ 'C' │ false │\n",
- "│ 11 │ 1 │ 53 │ 'B' │ false │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 4561 │ 'C' │ false │\n",
- "│ 1014 │ 64 │ 4569 │ 'C' │ false │\n",
- "│ 1015 │ 64 │ 4570 │ 'E' │ false │\n",
- "│ 1016 │ 64 │ 4574 │ 'C' │ false │\n",
- "│ 1017 │ 64 │ 4579 │ 'D' │ false │\n",
- "│ 1018 │ 64 │ 4584 │ 'C' │ false │\n",
- "│ 1019 │ 64 │ 4588 │ 'A' │ false │\n",
- "│ 1020 │ 64 │ 4590 │ 'C' │ false │\n",
- "│ 1021 │ 64 │ 4592 │ 'D' │ false │\n",
- "│ 1022 │ 64 │ 4599 │ 'B' │ false │\n",
- "│ 1023 │ 64 │ 4601 │ 'B' │ false │\n",
- "│ 1024 │ 64 │ 4603 │ 'C' │ false │"
+ "8×4 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │ before │\n",
+ "├─────┼─────────┼──────┼───────┼────────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │ false │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │ false │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │ false │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │ false │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │ false │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │ false │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │ false │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │ false │"
]
},
- "execution_count": 26,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata[:before] = [exportdata[:subject][1:end-1] .!= exportdata[:subject][2:end];false];\n",
- "exportdata"
+ "longitudinal[:before] = [longitudinal[:subject][1:end-1] .!= longitudinal[:subject][2:end];false];\n",
+ "longitudinal[1:8, :]"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"Similarly find the logical index of the row after the subject changed."
]
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 16,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [
{
"data": {
"text/html": [
- " | subject | time | event | before | after |
---|
1 | 1 | 6 | A | false | false |
---|
2 | 1 | 14 | A | false | false |
---|
3 | 1 | 21 | D | false | false |
---|
4 | 1 | 24 | A | false | false |
---|
5 | 1 | 26 | B | false | false |
---|
6 | 1 | 31 | C | false | false |
---|
7 | 1 | 32 | B | false | false |
---|
8 | 1 | 37 | C | false | false |
---|
9 | 1 | 41 | D | false | false |
---|
10 | 1 | 48 | C | false | false |
---|
11 | 1 | 53 | B | false | false |
---|
12 | 1 | 58 | C | false | false |
---|
13 | 1 | 62 | B | true | false |
---|
14 | 2 | 64 | C | false | true |
---|
15 | 2 | 72 | C | false | false |
---|
16 | 2 | 74 | B | false | false |
---|
17 | 2 | 76 | D | false | false |
---|
18 | 2 | 84 | A | false | false |
---|
19 | 2 | 87 | D | false | false |
---|
20 | 2 | 89 | B | false | false |
---|
21 | 2 | 91 | D | true | false |
---|
22 | 3 | 97 | E | false | true |
---|
23 | 3 | 104 | C | false | false |
---|
24 | 3 | 105 | D | false | false |
---|
25 | 3 | 111 | D | false | false |
---|
26 | 3 | 115 | A | false | false |
---|
27 | 3 | 119 | E | false | false |
---|
28 | 3 | 122 | B | false | false |
---|
29 | 3 | 129 | C | false | false |
---|
30 | 3 | 131 | C | false | false |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | subject | time | event | before | after |
---|
1 | 1 | 5 | C | false | false |
---|
2 | 1 | 7 | B | false | false |
---|
3 | 1 | 15 | D | false | false |
---|
4 | 1 | 20 | B | false | false |
---|
5 | 1 | 24 | C | false | false |
---|
6 | 1 | 32 | C | false | false |
---|
7 | 1 | 40 | C | false | false |
---|
8 | 1 | 45 | C | false | false |
---|
"
],
"text/plain": [
- "1024×5 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │ before │ after │\n",
- "├──────┼─────────┼──────┼───────┼────────┼───────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │ false │ false │\n",
- "│ 2 │ 1 │ 14 │ 'A' │ false │ false │\n",
- "│ 3 │ 1 │ 21 │ 'D' │ false │ false │\n",
- "│ 4 │ 1 │ 24 │ 'A' │ false │ false │\n",
- "│ 5 │ 1 │ 26 │ 'B' │ false │ false │\n",
- "│ 6 │ 1 │ 31 │ 'C' │ false │ false │\n",
- "│ 7 │ 1 │ 32 │ 'B' │ false │ false │\n",
- "│ 8 │ 1 │ 37 │ 'C' │ false │ false │\n",
- "│ 9 │ 1 │ 41 │ 'D' │ false │ false │\n",
- "│ 10 │ 1 │ 48 │ 'C' │ false │ false │\n",
- "│ 11 │ 1 │ 53 │ 'B' │ false │ false │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 4561 │ 'C' │ false │ false │\n",
- "│ 1014 │ 64 │ 4569 │ 'C' │ false │ false │\n",
- "│ 1015 │ 64 │ 4570 │ 'E' │ false │ false │\n",
- "│ 1016 │ 64 │ 4574 │ 'C' │ false │ false │\n",
- "│ 1017 │ 64 │ 4579 │ 'D' │ false │ false │\n",
- "│ 1018 │ 64 │ 4584 │ 'C' │ false │ false │\n",
- "│ 1019 │ 64 │ 4588 │ 'A' │ false │ false │\n",
- "│ 1020 │ 64 │ 4590 │ 'C' │ false │ false │\n",
- "│ 1021 │ 64 │ 4592 │ 'D' │ false │ false │\n",
- "│ 1022 │ 64 │ 4599 │ 'B' │ false │ false │\n",
- "│ 1023 │ 64 │ 4601 │ 'B' │ false │ false │\n",
- "│ 1024 │ 64 │ 4603 │ 'C' │ false │ false │"
+ "8×5 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │ before │ after │\n",
+ "├─────┼─────────┼──────┼───────┼────────┼───────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │ false │ false │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │ false │ false │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │ false │ false │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │ false │ false │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │ false │ false │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │ false │ false │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │ false │ false │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │ false │ false │"
]
},
- "execution_count": 27,
+ "execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata[:after] = [false; exportdata[:before][1:end-1]];\n",
- "exportdata"
+ "longitudinal[:after] = [false; longitudinal[:before][1:end-1]];\n",
+ "longitudinal[1:8, :]"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"Next initialize a column to contain the shift of baseline time for each subject."
]
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 17,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [
{
"data": {
"text/html": [
- " | subject | time | event | before | after | shift |
---|
1 | 1 | 6 | A | false | false | 0 |
---|
2 | 1 | 14 | A | false | false | 0 |
---|
3 | 1 | 21 | D | false | false | 0 |
---|
4 | 1 | 24 | A | false | false | 0 |
---|
5 | 1 | 26 | B | false | false | 0 |
---|
6 | 1 | 31 | C | false | false | 0 |
---|
7 | 1 | 32 | B | false | false | 0 |
---|
8 | 1 | 37 | C | false | false | 0 |
---|
9 | 1 | 41 | D | false | false | 0 |
---|
10 | 1 | 48 | C | false | false | 0 |
---|
11 | 1 | 53 | B | false | false | 0 |
---|
12 | 1 | 58 | C | false | false | 0 |
---|
13 | 1 | 62 | B | true | false | 0 |
---|
14 | 2 | 64 | C | false | true | 0 |
---|
15 | 2 | 72 | C | false | false | 0 |
---|
16 | 2 | 74 | B | false | false | 0 |
---|
17 | 2 | 76 | D | false | false | 0 |
---|
18 | 2 | 84 | A | false | false | 0 |
---|
19 | 2 | 87 | D | false | false | 0 |
---|
20 | 2 | 89 | B | false | false | 0 |
---|
21 | 2 | 91 | D | true | false | 0 |
---|
22 | 3 | 97 | E | false | true | 0 |
---|
23 | 3 | 104 | C | false | false | 0 |
---|
24 | 3 | 105 | D | false | false | 0 |
---|
25 | 3 | 111 | D | false | false | 0 |
---|
26 | 3 | 115 | A | false | false | 0 |
---|
27 | 3 | 119 | E | false | false | 0 |
---|
28 | 3 | 122 | B | false | false | 0 |
---|
29 | 3 | 129 | C | false | false | 0 |
---|
30 | 3 | 131 | C | false | false | 0 |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | subject | time | event | before | after | shift |
---|
1 | 1 | 5 | C | false | false | 0 |
---|
2 | 1 | 7 | B | false | false | 0 |
---|
3 | 1 | 15 | D | false | false | 0 |
---|
4 | 1 | 20 | B | false | false | 0 |
---|
5 | 1 | 24 | C | false | false | 0 |
---|
6 | 1 | 32 | C | false | false | 0 |
---|
7 | 1 | 40 | C | false | false | 0 |
---|
8 | 1 | 45 | C | false | false | 0 |
---|
"
],
"text/plain": [
- "1024×6 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
- "├──────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │ false │ false │ 0 │\n",
- "│ 2 │ 1 │ 14 │ 'A' │ false │ false │ 0 │\n",
- "│ 3 │ 1 │ 21 │ 'D' │ false │ false │ 0 │\n",
- "│ 4 │ 1 │ 24 │ 'A' │ false │ false │ 0 │\n",
- "│ 5 │ 1 │ 26 │ 'B' │ false │ false │ 0 │\n",
- "│ 6 │ 1 │ 31 │ 'C' │ false │ false │ 0 │\n",
- "│ 7 │ 1 │ 32 │ 'B' │ false │ false │ 0 │\n",
- "│ 8 │ 1 │ 37 │ 'C' │ false │ false │ 0 │\n",
- "│ 9 │ 1 │ 41 │ 'D' │ false │ false │ 0 │\n",
- "│ 10 │ 1 │ 48 │ 'C' │ false │ false │ 0 │\n",
- "│ 11 │ 1 │ 53 │ 'B' │ false │ false │ 0 │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 4561 │ 'C' │ false │ false │ 0 │\n",
- "│ 1014 │ 64 │ 4569 │ 'C' │ false │ false │ 0 │\n",
- "│ 1015 │ 64 │ 4570 │ 'E' │ false │ false │ 0 │\n",
- "│ 1016 │ 64 │ 4574 │ 'C' │ false │ false │ 0 │\n",
- "│ 1017 │ 64 │ 4579 │ 'D' │ false │ false │ 0 │\n",
- "│ 1018 │ 64 │ 4584 │ 'C' │ false │ false │ 0 │\n",
- "│ 1019 │ 64 │ 4588 │ 'A' │ false │ false │ 0 │\n",
- "│ 1020 │ 64 │ 4590 │ 'C' │ false │ false │ 0 │\n",
- "│ 1021 │ 64 │ 4592 │ 'D' │ false │ false │ 0 │\n",
- "│ 1022 │ 64 │ 4599 │ 'B' │ false │ false │ 0 │\n",
- "│ 1023 │ 64 │ 4601 │ 'B' │ false │ false │ 0 │\n",
- "│ 1024 │ 64 │ 4603 │ 'C' │ false │ false │ 0 │"
+ "8×6 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
+ "├─────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │ false │ false │ 0 │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │ false │ false │ 0 │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │ false │ false │ 0 │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │ false │ false │ 0 │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │ false │ false │ 0 │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │ false │ false │ 0 │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │ false │ false │ 0 │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │ false │ false │ 0 │"
]
},
- "execution_count": 28,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata[:shift] = zeros(Int, 1024);\n",
- "exportdata"
+ "longitudinal[:shift] = zeros(Int, 1024);\n",
+ "longitudinal[1:8, :]"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"Into the baseline shift of each row following the change in subject place the difference between the successive start times of each subject."
]
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 18,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [
{
"data": {
"text/html": [
- " | subject | time | event | before | after | shift |
---|
1 | 1 | 6 | A | false | false | 0 |
---|
2 | 1 | 14 | A | false | false | 0 |
---|
3 | 1 | 21 | D | false | false | 0 |
---|
4 | 1 | 24 | A | false | false | 0 |
---|
5 | 1 | 26 | B | false | false | 0 |
---|
6 | 1 | 31 | C | false | false | 0 |
---|
7 | 1 | 32 | B | false | false | 0 |
---|
8 | 1 | 37 | C | false | false | 0 |
---|
9 | 1 | 41 | D | false | false | 0 |
---|
10 | 1 | 48 | C | false | false | 0 |
---|
11 | 1 | 53 | B | false | false | 0 |
---|
12 | 1 | 58 | C | false | false | 0 |
---|
13 | 1 | 62 | B | true | false | 0 |
---|
14 | 2 | 64 | C | false | true | 62 |
---|
15 | 2 | 72 | C | false | false | 0 |
---|
16 | 2 | 74 | B | false | false | 0 |
---|
17 | 2 | 76 | D | false | false | 0 |
---|
18 | 2 | 84 | A | false | false | 0 |
---|
19 | 2 | 87 | D | false | false | 0 |
---|
20 | 2 | 89 | B | false | false | 0 |
---|
21 | 2 | 91 | D | true | false | 0 |
---|
22 | 3 | 97 | E | false | true | 29 |
---|
23 | 3 | 104 | C | false | false | 0 |
---|
24 | 3 | 105 | D | false | false | 0 |
---|
25 | 3 | 111 | D | false | false | 0 |
---|
26 | 3 | 115 | A | false | false | 0 |
---|
27 | 3 | 119 | E | false | false | 0 |
---|
28 | 3 | 122 | B | false | false | 0 |
---|
29 | 3 | 129 | C | false | false | 0 |
---|
30 | 3 | 131 | C | false | false | 0 |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | subject | time | event | before | after | shift |
---|
1 | 1 | 5 | C | false | false | 0 |
---|
2 | 1 | 7 | B | false | false | 0 |
---|
3 | 1 | 15 | D | false | false | 0 |
---|
4 | 1 | 20 | B | false | false | 0 |
---|
5 | 1 | 24 | C | false | false | 0 |
---|
6 | 1 | 32 | C | false | false | 0 |
---|
7 | 1 | 40 | C | false | false | 0 |
---|
8 | 1 | 45 | C | false | false | 0 |
---|
"
],
"text/plain": [
- "1024×6 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
- "├──────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │ false │ false │ 0 │\n",
- "│ 2 │ 1 │ 14 │ 'A' │ false │ false │ 0 │\n",
- "│ 3 │ 1 │ 21 │ 'D' │ false │ false │ 0 │\n",
- "│ 4 │ 1 │ 24 │ 'A' │ false │ false │ 0 │\n",
- "│ 5 │ 1 │ 26 │ 'B' │ false │ false │ 0 │\n",
- "│ 6 │ 1 │ 31 │ 'C' │ false │ false │ 0 │\n",
- "│ 7 │ 1 │ 32 │ 'B' │ false │ false │ 0 │\n",
- "│ 8 │ 1 │ 37 │ 'C' │ false │ false │ 0 │\n",
- "│ 9 │ 1 │ 41 │ 'D' │ false │ false │ 0 │\n",
- "│ 10 │ 1 │ 48 │ 'C' │ false │ false │ 0 │\n",
- "│ 11 │ 1 │ 53 │ 'B' │ false │ false │ 0 │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 4561 │ 'C' │ false │ false │ 0 │\n",
- "│ 1014 │ 64 │ 4569 │ 'C' │ false │ false │ 0 │\n",
- "│ 1015 │ 64 │ 4570 │ 'E' │ false │ false │ 0 │\n",
- "│ 1016 │ 64 │ 4574 │ 'C' │ false │ false │ 0 │\n",
- "│ 1017 │ 64 │ 4579 │ 'D' │ false │ false │ 0 │\n",
- "│ 1018 │ 64 │ 4584 │ 'C' │ false │ false │ 0 │\n",
- "│ 1019 │ 64 │ 4588 │ 'A' │ false │ false │ 0 │\n",
- "│ 1020 │ 64 │ 4590 │ 'C' │ false │ false │ 0 │\n",
- "│ 1021 │ 64 │ 4592 │ 'D' │ false │ false │ 0 │\n",
- "│ 1022 │ 64 │ 4599 │ 'B' │ false │ false │ 0 │\n",
- "│ 1023 │ 64 │ 4601 │ 'B' │ false │ false │ 0 │\n",
- "│ 1024 │ 64 │ 4603 │ 'C' │ false │ false │ 0 │"
+ "8×6 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
+ "├─────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │ false │ false │ 0 │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │ false │ false │ 0 │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │ false │ false │ 0 │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │ false │ false │ 0 │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │ false │ false │ 0 │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │ false │ false │ 0 │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │ false │ false │ 0 │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │ false │ false │ 0 │"
]
},
- "execution_count": 29,
+ "execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata[:shift][exportdata[:after]] = \n",
- " exportdata[:time][exportdata[:before]] - \n",
- " [0; exportdata[:time][exportdata[:before]][1:end-1]];\n",
- "exportdata"
+ "longitudinal[:shift][longitudinal[:after]] = \n",
+ " longitudinal[:time][longitudinal[:before]] - \n",
+ " [0; longitudinal[:time][longitudinal[:before]][1:end-1]];\n",
+ "longitudinal[1:8, :]"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"Fill in the zeroes by running a cummulative sum over the shift column."
]
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 19,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
},
"outputs": [
{
"data": {
"text/html": [
- " | subject | time | event | before | after | shift |
---|
1 | 1 | 6 | A | false | false | 0 |
---|
2 | 1 | 14 | A | false | false | 0 |
---|
3 | 1 | 21 | D | false | false | 0 |
---|
4 | 1 | 24 | A | false | false | 0 |
---|
5 | 1 | 26 | B | false | false | 0 |
---|
6 | 1 | 31 | C | false | false | 0 |
---|
7 | 1 | 32 | B | false | false | 0 |
---|
8 | 1 | 37 | C | false | false | 0 |
---|
9 | 1 | 41 | D | false | false | 0 |
---|
10 | 1 | 48 | C | false | false | 0 |
---|
11 | 1 | 53 | B | false | false | 0 |
---|
12 | 1 | 58 | C | false | false | 0 |
---|
13 | 1 | 62 | B | true | false | 0 |
---|
14 | 2 | 64 | C | false | true | 62 |
---|
15 | 2 | 72 | C | false | false | 62 |
---|
16 | 2 | 74 | B | false | false | 62 |
---|
17 | 2 | 76 | D | false | false | 62 |
---|
18 | 2 | 84 | A | false | false | 62 |
---|
19 | 2 | 87 | D | false | false | 62 |
---|
20 | 2 | 89 | B | false | false | 62 |
---|
21 | 2 | 91 | D | true | false | 62 |
---|
22 | 3 | 97 | E | false | true | 91 |
---|
23 | 3 | 104 | C | false | false | 91 |
---|
24 | 3 | 105 | D | false | false | 91 |
---|
25 | 3 | 111 | D | false | false | 91 |
---|
26 | 3 | 115 | A | false | false | 91 |
---|
27 | 3 | 119 | E | false | false | 91 |
---|
28 | 3 | 122 | B | false | false | 91 |
---|
29 | 3 | 129 | C | false | false | 91 |
---|
30 | 3 | 131 | C | false | false | 91 |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | subject | time | event | before | after | shift |
---|
1 | 1 | 5 | C | false | false | 0 |
---|
2 | 1 | 7 | B | false | false | 0 |
---|
3 | 1 | 15 | D | false | false | 0 |
---|
4 | 1 | 20 | B | false | false | 0 |
---|
5 | 1 | 24 | C | false | false | 0 |
---|
6 | 1 | 32 | C | false | false | 0 |
---|
7 | 1 | 40 | C | false | false | 0 |
---|
8 | 1 | 45 | C | false | false | 0 |
---|
"
],
"text/plain": [
- "1024×6 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
- "├──────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │ false │ false │ 0 │\n",
- "│ 2 │ 1 │ 14 │ 'A' │ false │ false │ 0 │\n",
- "│ 3 │ 1 │ 21 │ 'D' │ false │ false │ 0 │\n",
- "│ 4 │ 1 │ 24 │ 'A' │ false │ false │ 0 │\n",
- "│ 5 │ 1 │ 26 │ 'B' │ false │ false │ 0 │\n",
- "│ 6 │ 1 │ 31 │ 'C' │ false │ false │ 0 │\n",
- "│ 7 │ 1 │ 32 │ 'B' │ false │ false │ 0 │\n",
- "│ 8 │ 1 │ 37 │ 'C' │ false │ false │ 0 │\n",
- "│ 9 │ 1 │ 41 │ 'D' │ false │ false │ 0 │\n",
- "│ 10 │ 1 │ 48 │ 'C' │ false │ false │ 0 │\n",
- "│ 11 │ 1 │ 53 │ 'B' │ false │ false │ 0 │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 4561 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1014 │ 64 │ 4569 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1015 │ 64 │ 4570 │ 'E' │ false │ false │ 4531 │\n",
- "│ 1016 │ 64 │ 4574 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1017 │ 64 │ 4579 │ 'D' │ false │ false │ 4531 │\n",
- "│ 1018 │ 64 │ 4584 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1019 │ 64 │ 4588 │ 'A' │ false │ false │ 4531 │\n",
- "│ 1020 │ 64 │ 4590 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1021 │ 64 │ 4592 │ 'D' │ false │ false │ 4531 │\n",
- "│ 1022 │ 64 │ 4599 │ 'B' │ false │ false │ 4531 │\n",
- "│ 1023 │ 64 │ 4601 │ 'B' │ false │ false │ 4531 │\n",
- "│ 1024 │ 64 │ 4603 │ 'C' │ false │ false │ 4531 │"
+ "8×6 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
+ "├─────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │ false │ false │ 0 │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │ false │ false │ 0 │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │ false │ false │ 0 │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │ false │ false │ 0 │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │ false │ false │ 0 │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │ false │ false │ 0 │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │ false │ false │ 0 │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │ false │ false │ 0 │"
]
},
- "execution_count": 30,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata[:shift] = cumsum(exportdata[:shift]);\n",
- "exportdata"
+ "longitudinal[:shift] = cumsum(longitudinal[:shift]);\n",
+ "longitudinal[1:8, :]"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
"source": [
"Rectify the time for each subject by subtracting the baseline shift."
]
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " | subject | time | event | before | after | shift |
---|
1 | 1 | 5 | C | false | false | 0 |
---|
2 | 1 | 7 | B | false | false | 0 |
---|
3 | 1 | 15 | D | false | false | 0 |
---|
4 | 1 | 20 | B | false | false | 0 |
---|
5 | 1 | 24 | C | false | false | 0 |
---|
6 | 1 | 32 | C | false | false | 0 |
---|
7 | 1 | 40 | C | false | false | 0 |
---|
8 | 1 | 45 | C | false | false | 0 |
---|
"
+ ],
+ "text/plain": [
+ "8×6 DataFrames.DataFrame\n",
+ "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
+ "├─────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
+ "│ 1 │ 1 │ 5 │ 'C' │ false │ false │ 0 │\n",
+ "│ 2 │ 1 │ 7 │ 'B' │ false │ false │ 0 │\n",
+ "│ 3 │ 1 │ 15 │ 'D' │ false │ false │ 0 │\n",
+ "│ 4 │ 1 │ 20 │ 'B' │ false │ false │ 0 │\n",
+ "│ 5 │ 1 │ 24 │ 'C' │ false │ false │ 0 │\n",
+ "│ 6 │ 1 │ 32 │ 'C' │ false │ false │ 0 │\n",
+ "│ 7 │ 1 │ 40 │ 'C' │ false │ false │ 0 │\n",
+ "│ 8 │ 1 │ 45 │ 'C' │ false │ false │ 0 │"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "longitudinal[:time] = longitudinal[:time] - longitudinal[:shift];\n",
+ "longitudinal[1:8, :]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "deletable": true,
+ "editable": true
+ },
+ "source": [
+ "We can now export the data, choosing the first 3 columns."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false,
+ "deletable": true,
+ "editable": true
+ },
+ "outputs": [],
+ "source": [
+ "writetable(\"longitudinal.csv\", longitudinal[[:subject, :time, :event]])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Contingency Data\n",
+ "\n",
+ "The goal is to generate four columns of dimensional classifiers, as two pairs of dependent dimensions. We start by initializing the two distributions to sample:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "distributionone = [\n",
+ " [\"A\" -1],\n",
+ " [\"A\" -1],\n",
+ " [\"A\" -1],\n",
+ " [\"A\" 0],\n",
+ " [\"A\" 0],\n",
+ " [\"A\" 1],\n",
+ " [\"B\" -1],\n",
+ " [\"B\" 0],\n",
+ " [\"B\" 0],\n",
+ " [\"B\" 1],\n",
+ " [\"B\" 1],\n",
+ " [\"B\" 1]\n",
+ "];\n",
+ "distributiontwo = [\n",
+ " [\"C\" -2],\n",
+ " [\"C\" -1],\n",
+ " [\"C\" -1],\n",
+ " [\"C\" 0],\n",
+ " [\"C\" 0],\n",
+ " [\"C\" 0],\n",
+ " [\"C\" 1],\n",
+ " [\"C\" 1],\n",
+ " [\"C\" 1],\n",
+ " [\"C\" 1],\n",
+ " [\"C\" 2],\n",
+ " [\"C\" 2],\n",
+ " [\"C\" 2],\n",
+ " [\"C\" 2],\n",
+ " [\"C\" 2],\n",
+ " [\"D\" -2],\n",
+ " [\"D\" -1],\n",
+ " [\"D\" -1],\n",
+ " [\"D\" 0],\n",
+ " [\"D\" 0],\n",
+ " [\"D\" 0],\n",
+ " [\"D\" 1],\n",
+ " [\"D\" 1],\n",
+ " [\"D\" 2],\n",
+ " [\"E\" -2],\n",
+ " [\"E\" -2],\n",
+ " [\"E\" -2],\n",
+ " [\"E\" -1],\n",
+ " [\"E\" -1],\n",
+ " [\"E\" 0],\n",
+ " [\"E\" 1],\n",
+ " [\"E\" 1],\n",
+ " [\"E\" 2],\n",
+ " [\"E\" 2],\n",
+ " [\"E\" 2],\n",
+ " [\"F\" 2],\n",
+ " [\"F\" 1],\n",
+ " [\"F\" 1],\n",
+ " [\"F\" 0],\n",
+ " [\"F\" 0],\n",
+ " [\"F\" 0],\n",
+ " [\"F\" -1],\n",
+ " [\"F\" -1],\n",
+ " [\"F\" -1],\n",
+ " [\"F\" -1],\n",
+ " [\"F\" -2],\n",
+ " [\"F\" -2],\n",
+ " [\"F\" -2],\n",
+ " [\"F\" -2],\n",
+ " [\"F\" -2]\n",
+ "];"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We then generate another 1024 samples to populate a data frame."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
"metadata": {
"collapsed": false
},
@@ -412,64 +516,109 @@
{
"data": {
"text/html": [
- " | subject | time | event | before | after | shift |
---|
1 | 1 | 6 | A | false | false | 0 |
---|
2 | 1 | 14 | A | false | false | 0 |
---|
3 | 1 | 21 | D | false | false | 0 |
---|
4 | 1 | 24 | A | false | false | 0 |
---|
5 | 1 | 26 | B | false | false | 0 |
---|
6 | 1 | 31 | C | false | false | 0 |
---|
7 | 1 | 32 | B | false | false | 0 |
---|
8 | 1 | 37 | C | false | false | 0 |
---|
9 | 1 | 41 | D | false | false | 0 |
---|
10 | 1 | 48 | C | false | false | 0 |
---|
11 | 1 | 53 | B | false | false | 0 |
---|
12 | 1 | 58 | C | false | false | 0 |
---|
13 | 1 | 62 | B | true | false | 0 |
---|
14 | 2 | 2 | C | false | true | 62 |
---|
15 | 2 | 10 | C | false | false | 62 |
---|
16 | 2 | 12 | B | false | false | 62 |
---|
17 | 2 | 14 | D | false | false | 62 |
---|
18 | 2 | 22 | A | false | false | 62 |
---|
19 | 2 | 25 | D | false | false | 62 |
---|
20 | 2 | 27 | B | false | false | 62 |
---|
21 | 2 | 29 | D | true | false | 62 |
---|
22 | 3 | 6 | E | false | true | 91 |
---|
23 | 3 | 13 | C | false | false | 91 |
---|
24 | 3 | 14 | D | false | false | 91 |
---|
25 | 3 | 20 | D | false | false | 91 |
---|
26 | 3 | 24 | A | false | false | 91 |
---|
27 | 3 | 28 | E | false | false | 91 |
---|
28 | 3 | 31 | B | false | false | 91 |
---|
29 | 3 | 38 | C | false | false | 91 |
---|
30 | 3 | 40 | C | false | false | 91 |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
---|
"
+ " | sample | preonetwo | prethreefour |
---|
1 | 1 | Any[\"B\" 0] | Any[\"C\" 0] |
---|
2 | 2 | Any[\"B\" 0] | Any[\"C\" 0] |
---|
3 | 3 | Any[\"B\" 1] | Any[\"C\" -1] |
---|
4 | 4 | Any[\"B\" -1] | Any[\"D\" -1] |
---|
5 | 5 | Any[\"B\" 1] | Any[\"F\" 0] |
---|
6 | 6 | Any[\"B\" 0] | Any[\"F\" -2] |
---|
7 | 7 | Any[\"B\" 1] | Any[\"C\" -1] |
---|
8 | 8 | Any[\"B\" -1] | Any[\"C\" 1] |
---|
"
],
"text/plain": [
- "1024×6 DataFrames.DataFrame\n",
- "│ Row │ subject │ time │ event │ before │ after │ shift │\n",
- "├──────┼─────────┼──────┼───────┼────────┼───────┼───────┤\n",
- "│ 1 │ 1 │ 6 │ 'A' │ false │ false │ 0 │\n",
- "│ 2 │ 1 │ 14 │ 'A' │ false │ false │ 0 │\n",
- "│ 3 │ 1 │ 21 │ 'D' │ false │ false │ 0 │\n",
- "│ 4 │ 1 │ 24 │ 'A' │ false │ false │ 0 │\n",
- "│ 5 │ 1 │ 26 │ 'B' │ false │ false │ 0 │\n",
- "│ 6 │ 1 │ 31 │ 'C' │ false │ false │ 0 │\n",
- "│ 7 │ 1 │ 32 │ 'B' │ false │ false │ 0 │\n",
- "│ 8 │ 1 │ 37 │ 'C' │ false │ false │ 0 │\n",
- "│ 9 │ 1 │ 41 │ 'D' │ false │ false │ 0 │\n",
- "│ 10 │ 1 │ 48 │ 'C' │ false │ false │ 0 │\n",
- "│ 11 │ 1 │ 53 │ 'B' │ false │ false │ 0 │\n",
- "⋮\n",
- "│ 1013 │ 64 │ 30 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1014 │ 64 │ 38 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1015 │ 64 │ 39 │ 'E' │ false │ false │ 4531 │\n",
- "│ 1016 │ 64 │ 43 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1017 │ 64 │ 48 │ 'D' │ false │ false │ 4531 │\n",
- "│ 1018 │ 64 │ 53 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1019 │ 64 │ 57 │ 'A' │ false │ false │ 4531 │\n",
- "│ 1020 │ 64 │ 59 │ 'C' │ false │ false │ 4531 │\n",
- "│ 1021 │ 64 │ 61 │ 'D' │ false │ false │ 4531 │\n",
- "│ 1022 │ 64 │ 68 │ 'B' │ false │ false │ 4531 │\n",
- "│ 1023 │ 64 │ 70 │ 'B' │ false │ false │ 4531 │\n",
- "│ 1024 │ 64 │ 72 │ 'C' │ false │ false │ 4531 │"
+ "8×3 DataFrames.DataFrame\n",
+ "│ Row │ sample │ preonetwo │ prethreefour │\n",
+ "├─────┼────────┼─────────────┼──────────────┤\n",
+ "│ 1 │ 1 │ Any[\"B\" 0] │ Any[\"C\" 0] │\n",
+ "│ 2 │ 2 │ Any[\"B\" 0] │ Any[\"C\" 0] │\n",
+ "│ 3 │ 3 │ Any[\"B\" 1] │ Any[\"C\" -1] │\n",
+ "│ 4 │ 4 │ Any[\"B\" -1] │ Any[\"D\" -1] │\n",
+ "│ 5 │ 5 │ Any[\"B\" 1] │ Any[\"F\" 0] │\n",
+ "│ 6 │ 6 │ Any[\"B\" 0] │ Any[\"F\" -2] │\n",
+ "│ 7 │ 7 │ Any[\"B\" 1] │ Any[\"C\" -1] │\n",
+ "│ 8 │ 8 │ Any[\"B\" -1] │ Any[\"C\" 1] │"
]
},
- "execution_count": 31,
+ "execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "exportdata[:time] = exportdata[:time] - exportdata[:shift];\n",
- "exportdata"
+ "contingency = DataFrame(\n",
+ " sample = 1:1024,\n",
+ " preonetwo = rand(distributionone, 1024),\n",
+ " prethreefour = rand(distributiontwo, 1024)\n",
+ ");\n",
+ "contingency[1:8, :]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "We can now export the data, choosing the first 3 columns."
+ "Next we extract the individual column elements into dimension columns."
]
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 54,
"metadata": {
"collapsed": false
},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " | sample | preonetwo | prethreefour | dimensionone | dimensiontwo | dimensionthree | dimensionfour |
---|
1 | 1 | Any[\"B\" 0] | Any[\"C\" 0] | B | 0 | C | 0 |
---|
2 | 2 | Any[\"B\" 0] | Any[\"C\" 0] | B | 0 | C | 0 |
---|
3 | 3 | Any[\"B\" 1] | Any[\"C\" -1] | B | 1 | C | -1 |
---|
4 | 4 | Any[\"B\" -1] | Any[\"D\" -1] | B | -1 | D | -1 |
---|
5 | 5 | Any[\"B\" 1] | Any[\"F\" 0] | B | 1 | F | 0 |
---|
6 | 6 | Any[\"B\" 0] | Any[\"F\" -2] | B | 0 | F | -2 |
---|
7 | 7 | Any[\"B\" 1] | Any[\"C\" -1] | B | 1 | C | -1 |
---|
8 | 8 | Any[\"B\" -1] | Any[\"C\" 1] | B | -1 | C | 1 |
---|
"
+ ],
+ "text/plain": [
+ "8×7 DataFrames.DataFrame\n",
+ "│ Row │ sample │ preonetwo │ prethreefour │ dimensionone │ dimensiontwo │\n",
+ "├─────┼────────┼─────────────┼──────────────┼──────────────┼──────────────┤\n",
+ "│ 1 │ 1 │ Any[\"B\" 0] │ Any[\"C\" 0] │ \"B\" │ 0 │\n",
+ "│ 2 │ 2 │ Any[\"B\" 0] │ Any[\"C\" 0] │ \"B\" │ 0 │\n",
+ "│ 3 │ 3 │ Any[\"B\" 1] │ Any[\"C\" -1] │ \"B\" │ 1 │\n",
+ "│ 4 │ 4 │ Any[\"B\" -1] │ Any[\"D\" -1] │ \"B\" │ -1 │\n",
+ "│ 5 │ 5 │ Any[\"B\" 1] │ Any[\"F\" 0] │ \"B\" │ 1 │\n",
+ "│ 6 │ 6 │ Any[\"B\" 0] │ Any[\"F\" -2] │ \"B\" │ 0 │\n",
+ "│ 7 │ 7 │ Any[\"B\" 1] │ Any[\"C\" -1] │ \"B\" │ 1 │\n",
+ "│ 8 │ 8 │ Any[\"B\" -1] │ Any[\"C\" 1] │ \"B\" │ -1 │\n",
+ "\n",
+ "│ Row │ dimensionthree │ dimensionfour │\n",
+ "├─────┼────────────────┼───────────────┤\n",
+ "│ 1 │ \"C\" │ 0 │\n",
+ "│ 2 │ \"C\" │ 0 │\n",
+ "│ 3 │ \"C\" │ -1 │\n",
+ "│ 4 │ \"D\" │ -1 │\n",
+ "│ 5 │ \"F\" │ 0 │\n",
+ "│ 6 │ \"F\" │ -2 │\n",
+ "│ 7 │ \"C\" │ -1 │\n",
+ "│ 8 │ \"C\" │ 1 │"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "contingency[:dimensionone] = vcat(contingency[:, :preonetwo]...)[:, 1];\n",
+ "contingency[:dimensiontwo] = vcat(contingency[:, :preonetwo]...)[:, 2];\n",
+ "contingency[:dimensionthree] = vcat(contingency[:, :prethreefour]...)[:, 1];\n",
+ "contingency[:dimensionfour] = vcat(contingency[:, :prethreefour]...)[:, 2];\n",
+ "contingency[1:8, :]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Finally we export our contingency table data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
- "writetable(\"export.csv\", exportdata[[:subject, :time, :event]])"
+ "writetable(\"contingency.csv\", contingency[[:sample, :dimensionone, :dimensiontwo, :dimensionthree, :dimensionfour]])"
]
}
],