diff --git a/Clean_data_H5.csv b/Clean_data_H5.csv new file mode 100644 index 0000000..681d998 --- /dev/null +++ b/Clean_data_H5.csv @@ -0,0 +1,550 @@ +"","Participant","time_formated","avg_x","avg_y","avg_z","abs_acceleration" +"1","Hangshi Jin",19:00:00,0.94929702970297,-9.27613861386139,-0.465858514851485,9.60990099009901 +"2","Hangshi Jin",19:00:01,0.434050505050505,-10.8777887878788,-1.98201111111111,15.7171515151515 +"3","Hangshi Jin",19:00:02,-0.350274,-8.034969,-1.457862,11.79485 +"4","Hangshi Jin",19:00:03,-1.408624,-11.3402541,-1.710936,15.016 +"5","Hangshi Jin",19:00:04,-1.207212,-7.6797016,-1.272703,12.0047 +"6","Hangshi Jin",19:00:05,-1.548945,-11.07423,-2.1862411,16.0646 +"7","Hangshi Jin",19:00:06,-1.447873,-9.752377,-1.307736,13.1692 +"8","Hangshi Jin",19:00:07,-1.70064356435644,-9.23726851485148,-1.3394099009901,13.8474653465347 +"9","Hangshi Jin",19:00:08,-1.514902,-11.57677,-1.220916,16.1631 +"10","Hangshi Jin",19:00:09,-1.294153,-7.676244,-1.0235646,12.77587 +"11","Hangshi Jin",19:00:10,-1.50183894736842,-11.9694189473684,-1.12590526315789,17.0572631578947 +"12","Hangshi Jin",19:00:11,-1.372212,-7.7329796,-0.908646,13.90316 +"13","Hangshi Jin",19:00:12,-1.63073,-11.574735,-1.502807,16.6516 +"14","Hangshi Jin",19:00:13,-1.061805,-7.80748351,-1.44817,13.45003 +"15","Hangshi Jin",19:00:14,-1.4346851,-11.22119599,-1.622306,16.8226 +"16","Hangshi Jin",19:00:15,-0.955380198019802,-9.41952475247525,-1.11000495049505,14.7033663366337 +"17","Hangshi Jin",19:00:16,-0.257057,-8.57259,-3.07946,13.5775 +"18","Hangshi Jin",19:00:17,-0.450583,-10.4087,-1.629114,11.2329 +"19","Hangshi Jin",19:00:18,-1.7474505,-8.945309,-1.750749,16.46786 +"20","Hangshi Jin",19:00:19,-1.358031,-8.293803,-1.543218,15.2215 +"21","Hangshi Jin",19:00:20,-1.464981,-11.578654,-2.141993,18.0842 +"22","Hangshi Jin",19:00:21,-1.1936779,-7.843342,-1.478896,14.35671 +"23","Hangshi Jin",19:00:22,-1.43799,-11.503867,-1.7427756,17.62045 +"24","Hangshi Jin",19:00:23,-1.09657,-8.4675,-0.87592,14.1114 +"25","Hangshi Jin",19:00:24,-0.121357,-9.3062,-3.640745,11.2721 +"26","Hangshi Jin",19:00:25,-0.176575,-9.7023,0.0667571,9.9875 +"27","Hangshi Jin",19:00:26,-1.029952,-9.036356,-1.7637,13.4242 +"28","Hangshi Jin",19:00:27,-1.177562,-9.37057,-2.115754,14.8 +"29","Hangshi Jin",19:00:28,-1.3851156,-10.335612,-1.295937,15.8447 +"30","Hangshi Jin",19:00:29,-1.217117,-9.590072,-1.070283,15.3293 +"31","Hangshi Jin",19:00:30,-1.44259306930693,-9.71577623762376,-0.915811881188119,15.7511188118812 +"32","Hangshi Jin",19:00:31,-1.484707,-10.94576,-1.329708,17.7804 +"33","Hangshi Jin",19:00:32,-1.34179,-8.038477,-1.512422,14.50524 +"34","Hangshi Jin",19:00:33,-1.342387,-10.77364,-1.76305,15.677 +"35","Hangshi Jin",19:00:34,-1.140988,-8.858871,-1.508736,14.7308 +"36","Hangshi Jin",19:00:35,-1.291657,-8.2633469,-1.55996,13.4944 +"37","Hangshi Jin",19:00:36,-1.217731,-11.7436,-2.464306,17.3057 +"38","Hangshi Jin",19:00:37,-1.182533,-8.022041,-0.9341,12.60739 +"39","Hangshi Jin",19:00:38,-1.004606,-11.91994,-1.8362137,17.2477 +"40","Hangshi Jin",19:00:39,-1.160772,-7.98343,-1.266756,14.1423 +"41","Hangshi Jin",19:00:40,-1.411795,-10.60417,-1.554366,16.6477 +"42","Hangshi Jin",19:00:41,-0.864471,-9.844541,-0.99523,18.3664 +"43","Hangshi Jin",19:00:42,-1.190874,-8.388207,-1.28025,16.0611 +"44","Hangshi Jin",19:00:43,-1.1389223,-11.44747,-1.42082,17.0196 +"45","Hangshi Jin",19:00:44,-1.048478,-8.267818,-1.5767672,13.00617 +"46","Hangshi Jin",19:00:45,-0.714228415841584,-11.3887396039604,-1.9177900990099,16.6382079207921 +"47","Hangshi Jin",19:00:46,-1.361578,-9.242758,-1.861895,16.7401 +"48","Hangshi Jin",19:00:47,-1.06943,-8.198077,-1.43645,13.1763 +"49","Hangshi Jin",19:00:48,-1.152712,-11.8432266,-1.908474,15.91535 +"50","Hangshi Jin",19:00:49,-1.185471,-8.2924423,-1.587508,14.0888 +"51","Hangshi Jin",19:00:50,-0.741669,-11.892541,-2.22086,16.32518 +"52","Hangshi Jin",19:00:51,-1.358751,-8.218409,-2.121174,14.3178 +"53","Hangshi Jin",19:00:52,-0.978476,-8.690725,-2.038094,13.1607 +"54","Hangshi Jin",19:00:53,-1.0000823,-12.2328762,-1.534282,18.8376 +"55","Hangshi Jin",19:00:54,-1.13128351,-8.588876,-1.787369,14.269 +"56","Hangshi Jin",19:00:55,-1.188969,-8.808137,-1.947129,14.2642 +"57","Hangshi Jin",19:00:56,-1.08464,-9.63225,-2.424278,14.7426 +"58","Hangshi Jin",19:00:57,-1.513362,-10.710156,-3.00958,17.0552 +"59","Hangshi Jin",19:00:58,-1.2590596,-9.486918,-2.81473,15.47745 +"60","Hangshi Jin",19:00:59,-1.418529,-10.61606,-2.5311198,15.3529 +"61","Hangshi Jin",19:01:00,-3.3518,-1.7686,-0.38,9.528 +"62","Kaijie Fang",19:00:00,1.54133762376238,-8.77287128712871,1.27193168316832,10.4081188118812 +"63","Kaijie Fang",19:00:01,0.1117481,-9.7692,1.10619,9.855 +"64","Kaijie Fang",19:00:02,0.0231618811881188,-10.3185742574257,0.537085148514851,11.4529801980198 +"65","Kaijie Fang",19:00:03,0.523440594059406,-8.9650697029703,0.384091089108911,15.4277524752475 +"66","Kaijie Fang",19:00:04,0.3041247,-7.29114,1.05891,13.35111 +"67","Kaijie Fang",19:00:05,0.469492079207921,-10.2442475247525,1.51542574257426,16.0005643564356 +"68","Kaijie Fang",19:00:06,0.0192079207920793,-7.83236633663366,0.798782178217822,14.800495049505 +"69","Kaijie Fang",19:00:07,-0.136139,-10.73867,1.50779,17.66643 +"70","Kaijie Fang",19:00:08,0.168060396039604,-6.81366336633663,0.824276237623762,12.943198019802 +"71","Kaijie Fang",19:00:09,-0.85371099009901,-10.9271207920792,1.04476831683168,16.3710792079208 +"72","Kaijie Fang",19:00:10,0.0518552083333333,-6.9750625,1.28676875,12.6555625 +"73","Kaijie Fang",19:00:11,0.313739603960396,-11.1309742574257,1.18657425742574,16.5915049504951 +"74","Kaijie Fang",19:00:12,-0.276836,-7.16522,1.0383541,12.73269 +"75","Kaijie Fang",19:00:13,0.489292079207921,-10.9814752475248,1.5208297029703,16.3084257425743 +"76","Kaijie Fang",19:00:14,0.863040594059406,-7.31990297029703,0.765559108910891,12.4838415841584 +"77","Kaijie Fang",19:00:15,-0.1325177,-10.91176,1.467906,16.04673 +"78","Kaijie Fang",19:00:16,0.412257425742574,-7.33232673267327,0.786269306930693,11.9501287128713 +"79","Kaijie Fang",19:00:17,-0.178005445544554,-10.9894782178218,1.32092475247525,16.2098217821782 +"80","Kaijie Fang",19:00:18,0.3013486,-7.367589,0.4770805,13.0779 +"81","Kaijie Fang",19:00:19,0.135000792079208,-11.0569564356436,1.7512000990099,16.7733663366337 +"82","Kaijie Fang",19:00:20,-0.260789108910891,-6.83940594059406,1.18775217821782,11.7523663366337 +"83","Kaijie Fang",19:00:21,0.019683,-11.58941,0.7208637,17.07774 +"84","Kaijie Fang",19:00:22,-0.118444356435644,-6.99223762376238,1.11116,12.3272871287129 +"85","Kaijie Fang",19:00:23,0.439544653465347,-11.2356712871287,1.25013168316832,17.2274554455446 +"86","Kaijie Fang",19:00:24,-0.0746559,-7.51704,0.53769,13.33647 +"87","Kaijie Fang",19:00:25,0.0619980198019802,-7.48534653465347,0.441437623762376,13.790801980198 +"88","Kaijie Fang",19:00:26,0.143509900990099,-10.9799900990099,1.41726732673267,17.1189603960396 +"89","Kaijie Fang",19:00:27,-0.06834,-7.047923,1.1441882,12.34917 +"90","Kaijie Fang",19:00:28,0.375336633663366,-11.3081584158416,1.04867227722772,17.2108910891089 +"91","Kaijie Fang",19:00:29,0.361848217821782,-7.10958415841584,1.09727821782178,12.4337128712871 +"92","Kaijie Fang",19:00:30,0.153303,-11.65388,0.5288648,17.11183 +"93","Kaijie Fang",19:00:31,0.349815841584158,-6.76294257425743,1.50113762376238,12.8586138613861 +"94","Kaijie Fang",19:00:32,0.653728811881188,-11.280603960396,1.26482178217822,17.150396039604 +"95","Kaijie Fang",19:00:33,0.593099,-7.23158,0.783428,13.0041 +"96","Kaijie Fang",19:00:34,0.921246534653465,-8.64953465346535,1.21825346534653,14.8132673267327 +"97","Kaijie Fang",19:00:35,0.450625742574257,-9.71500792079208,0.903806930693069,16.5955445544554 +"98","Kaijie Fang",19:00:36,1.842959,-6.37516,0.477417,13.55445 +"99","Kaijie Fang",19:00:37,0.657647623762376,-11.4459584158416,1.41750495049505,16.6834455445545 +"100","Kaijie Fang",19:00:38,0.910771287128713,-6.70036633663366,1.22805247524752,12.910396039604 +"101","Kaijie Fang",19:00:39,-0.264681,-11.581299,0.612994,18.27282 +"102","Kaijie Fang",19:00:40,1.42146534653465,-6.61026732673267,1.41092079207921,12.8392871287129 +"103","Kaijie Fang",19:00:41,-0.163369108910891,-8.93853663366337,0.956237623762376,15.6187128712871 +"104","Kaijie Fang",19:00:42,-0.128333,-10.161808,0.86344,15.76863 +"105","Kaijie Fang",19:00:43,0.533586732673267,-7.48746534653465,1.08202574257426,12.4039603960396 +"106","Kaijie Fang",19:00:44,0.382310891089109,-11.3904198019802,1.37886207920792,18.1255841584158 +"107","Kaijie Fang",19:00:45,0.180995,-7.4305387,0.86357,13.96501 +"108","Kaijie Fang",19:00:46,0.283560396039604,-7.48648514851485,0.7813,13.5415247524752 +"109","Kaijie Fang",19:00:47,-0.209538613861386,-11.7798702970297,0.966338613861386,17.2876336633663 +"110","Kaijie Fang",19:00:48,0.431319,-7.38043,0.810847,12.67236 +"111","Kaijie Fang",19:00:49,0.729268316831683,-7.72673267326733,0.392932673267327,12.3795346534653 +"112","Kaijie Fang",19:00:50,0.0636580198019802,-11.9665247524752,1.33403267326733,17.1435643564356 +"113","Kaijie Fang",19:00:51,0.479216,-7.50162,1.136112,12.6509 +"114","Kaijie Fang",19:00:52,0.215726831683168,-7.74346514851485,0.333036633663366,12.4077326732673 +"115","Kaijie Fang",19:00:53,0.310539801980198,-11.3301584158416,1.45507227722772,16.763900990099 +"116","Kaijie Fang",19:00:54,1.118781,-7.205761,1.106811,12.90546 +"117","Kaijie Fang",19:00:55,0.231233366336634,-10.2737623762376,-0.0601633663366336,11.0424752475248 +"118","Kaijie Fang",19:00:56,0.40188,-8.99126,0.7372684,10.3231 +"119","Kaijie Fang",19:00:57,0.760291089108911,-9.14289306930693,0.589346534653465,13.6479900990099 +"120","Kaijie Fang",19:00:58,-1.01792574257426,-11.7290207920792,0.124359405940594,15.6229801980198 +"121","Kaijie Fang",19:00:59,-1.3078094,-8.663491,0.5134602,11.37102 +"122","Kaijie Fang",19:01:00,1.2225,2.8375,1.115475,3.355 +"123","Paolo Rivas",19:00:00,-6.71105158730159,-3.5242551984127,2.60841964285714,10.7689126984127 +"124","Paolo Rivas",19:00:01,0.277406374501992,-9.36852988047809,-0.623373705179283,11.1056573705179 +"125","Paolo Rivas",19:00:02,3.28834523809524,-9.34015396825397,-1.17283928571429,10.7596031746032 +"126","Paolo Rivas",19:00:03,3.63716857142857,-8.53555936507937,-0.613822222222222,13.541626984127 +"127","Paolo Rivas",19:00:04,3.5965119047619,-10.8484134920635,-0.92233253968254,19.9771031746032 +"128","Paolo Rivas",19:00:05,1.87736756972112,-11.4997609561753,-3.08942948207171,19.5702788844622 +"129","Paolo Rivas",19:00:06,2.6633380952381,-10.0822301587302,-1.7383503968254,18.0188134920635 +"130","Paolo Rivas",19:00:07,1.89193253968254,-9.91129007936508,-0.331657817460317,19.6088492063492 +"131","Paolo Rivas",19:00:08,2.1114369047619,-9.09715416666667,-1.07774801587302,20.0176984126984 +"132","Paolo Rivas",19:00:09,1.01452658730159,-6.7067130952381,-1.29289055555556,14.7705158730159 +"133","Paolo Rivas",19:00:10,1.61401458333333,-10.6986147083333,-0.11220875,19.8003083333333 +"134","Paolo Rivas",19:00:11,1.89952738095238,-10.480001984127,-0.940694444444444,21.1912698412698 +"135","Paolo Rivas",19:00:12,1.13554444444444,-9.93099682539683,-0.800001190476191,19.7428174603175 +"136","Paolo Rivas",19:00:13,0.657465873015873,-10.5991384920635,-0.564868253968254,19.7449206349206 +"137","Paolo Rivas",19:00:14,1.91289944444444,-10.2876916666667,-1.41510079365079,19.2815476190476 +"138","Paolo Rivas",19:00:15,2.09677024603175,-9.97859218253968,-1.16109761904762,20.7750992063492 +"139","Paolo Rivas",19:00:16,0.658974900398406,-10.1497456175299,-1.21916613545817,18.7423306772908 +"140","Paolo Rivas",19:00:17,1.74702777777778,-10.3089404761905,-0.650777380952381,21.2788492063492 +"141","Paolo Rivas",19:00:18,1.82270595238095,-9.47448293650794,-0.571372222222222,21.3715634920635 +"142","Paolo Rivas",19:00:19,1.46690317460317,-9.43214007936508,0.348395476190476,22.3637738095238 +"143","Paolo Rivas",19:00:20,0.0346936507936508,-8.13686111111111,-0.790129761904762,12.3000793650794 +"144","Paolo Rivas",19:00:21,0.454460714285714,-10.4243492063492,-1.1681046031746,13.3598412698413 +"145","Paolo Rivas",19:00:22,0.876919047619048,-10.9847579365079,-2.64793492063492,16.4822698412698 +"146","Paolo Rivas",19:00:23,1.34157529880478,-9.62552533864542,-1.06140956175299,13.5148207171315 +"147","Paolo Rivas",19:00:24,1.56681305555556,-10.094421031746,-1.49748055555556,14.5409920634921 +"148","Paolo Rivas",19:00:25,1.84472115079365,-10.6501611111111,-1.6846123015873,20.3827619047619 +"149","Paolo Rivas",19:00:26,1.65038412698413,-10.7796484920635,-1.4546626984127,19.5382936507937 +"150","Paolo Rivas",19:00:27,1.23834007936508,-9.72853849206349,0.608849206349206,20.6212301587302 +"151","Paolo Rivas",19:00:28,2.2096121031746,-7.90295119047619,-1.3231619047619,18.6583015873016 +"152","Paolo Rivas",19:00:29,1.21483895238095,-9.38081388888889,-1.58598174603175,19.8839682539683 +"153","Paolo Rivas",19:00:30,1.76879027888446,-10.4343426294821,0.738365737051793,21.2340637450199 +"154","Paolo Rivas",19:00:31,1.67383103174603,-11.3244952380952,-1.66614777777778,22.6878571428571 +"155","Paolo Rivas",19:00:32,1.9876071031746,-10.9573976190476,-0.922608095238095,21.370876984127 +"156","Paolo Rivas",19:00:33,1.45726523809524,-10.7430448412698,-1.66336349206349,21.4704365079365 +"157","Paolo Rivas",19:00:34,3.23231785714286,-8.68474841269841,0.741119841269841,18.5282936507936 +"158","Paolo Rivas",19:00:35,1.70108373015873,-8.45333333333333,-2.77312698412698,11.6769047619048 +"159","Paolo Rivas",19:00:36,2.3883373015873,-9.64558619444444,-1.96577698412698,19.3379722222222 +"160","Paolo Rivas",19:00:37,1.93955219123506,-10.3864573705179,-0.221531075697211,20.872764940239 +"161","Paolo Rivas",19:00:38,0.908500793650794,-9.94489837301587,-0.32126626984127,19.0361507936508 +"162","Paolo Rivas",19:00:39,1.49177432539683,-11.0920853571429,-1.38363412698413,22.5272222222222 +"163","Paolo Rivas",19:00:40,2.43039349206349,-10.611771031746,-0.330355555555556,23.334246031746 +"164","Paolo Rivas",19:00:41,2.38170595238095,-9.84858345238095,-1.30216988095238,20.941623015873 +"165","Paolo Rivas",19:00:42,1.65583619047619,-10.6807313492063,-0.549119047619048,21.3242857142857 +"166","Paolo Rivas",19:00:43,1.40797857142857,-9.62614761904762,-1.09135912698413,19.9473531746032 +"167","Paolo Rivas",19:00:44,2.25431832669323,-11.755479247012,-0.724944621513944,15.1064143426295 +"168","Paolo Rivas",19:00:45,2.0524623015873,-8.52243253968254,0.0227488095238095,16.0957341269841 +"169","Paolo Rivas",19:00:46,1.79112611111111,-9.18832214285714,-0.644431746031746,13.9025 +"170","Paolo Rivas",19:00:47,2.28260353174603,-9.84912023809524,-0.800829365079365,20.3626587301587 +"171","Paolo Rivas",19:00:48,2.69563611111111,-9.80275833333333,-0.87695,21.0007698412698 +"172","Paolo Rivas",19:00:49,1.81839206349206,-10.8052936507937,-1.12711111111111,22.4967063492063 +"173","Paolo Rivas",19:00:50,1.40104563492063,-10.2677934126984,-1.5555119047619,20.625873015873 +"174","Paolo Rivas",19:00:51,2.43699721115538,-9.79560478087649,-1.70890996015936,21.39203187251 +"175","Paolo Rivas",19:00:52,1.14328916666667,-9.85940595238095,-1.07268849206349,19.0822658730159 +"176","Paolo Rivas",19:00:53,1.6187173015873,-10.0456420634921,-0.017531746031746,20.353373015873 +"177","Paolo Rivas",19:00:54,2.50894845238095,-9.80906408730159,-0.175954365079365,21.1793888888889 +"178","Paolo Rivas",19:00:55,1.94864880952381,-9.65952984126984,-0.59501626984127,20.2261587301587 +"179","Paolo Rivas",19:00:56,2.34249404761905,-9.55055515873016,-1.33391011904762,20.244996031746 +"180","Paolo Rivas",19:00:57,1.61990079365079,-8.59497182539683,-1.18909761904762,19.7532777777778 +"181","Paolo Rivas",19:00:58,1.41671434262948,-9.28070637450199,-2.17138880478088,17.0328685258964 +"182","Paolo Rivas",19:00:59,1.23544007936508,-11.0176984126984,-0.882784920634921,13.1799206349206 +"183","Paolo Rivas",19:01:00,6.04870588235294,-8.89176470588235,0.851529411764706,11.0241176470588 +"184","Qiyu Wu",19:00:00,-0.0896368316831683,4.58807326732673,7.08488118811881,10.4056435643564 +"185","Qiyu Wu",19:00:01,-2.232553,9.22811,-2.014974,9.9255 +"186","Qiyu Wu",19:00:02,-0.701866336633663,9.66227722772277,-1.31108326732673,9.86613861386139 +"187","Qiyu Wu",19:00:03,-1.0776783,10.81492,-0.0281517,12.1278 +"188","Qiyu Wu",19:00:04,-1.04031584158416,7.86910495049505,-0.0477821782178218,11.5269306930693 +"189","Qiyu Wu",19:00:05,-1.98731683168317,10.9786069306931,-0.335991089108911,12.7697821782178 +"190","Qiyu Wu",19:00:06,-1.058336,8.309015,-0.2531175,10.23875 +"191","Qiyu Wu",19:00:07,-1.93845445544554,11.078297029703,-1.00882277227723,12.7968316831683 +"192","Qiyu Wu",19:00:08,-1.041849,8.00251501,-0.1866907,9.5635 +"193","Qiyu Wu",19:00:09,-1.93529702970297,11.2127386138614,-0.178394950495049,12.8631782178218 +"194","Qiyu Wu",19:00:10,-1.24857708333333,8.594409375,0.4993325,10.4704895833333 +"195","Qiyu Wu",19:00:11,-1.49593693069307,9.88674485148515,0.0258188118811881,11.3438217821782 +"196","Qiyu Wu",19:00:12,-1.523654,10.129138,-0.254402,11.96948 +"197","Qiyu Wu",19:00:13,-1.27265346534653,8.1168,0.0474,10.1413762376238 +"198","Qiyu Wu",19:00:14,-2.093752,11.211606,0.06780402,12.90665 +"199","Qiyu Wu",19:00:15,-1.49025643564356,9.1426702970297,0.117541584158416,10.8415445544554 +"200","Qiyu Wu",19:00:16,-1.60834762376238,8.47767227722772,0.368257425742574,10.3357326732673 +"201","Qiyu Wu",19:00:17,-1.767202,11.691906,-0.099172,13.05065 +"202","Qiyu Wu",19:00:18,-1.58894851485149,8.40547930693069,-0.419391089108911,10.1961782178218 +"203","Qiyu Wu",19:00:19,-1.4515,9.078398,-0.021504,10.47201 +"204","Qiyu Wu",19:00:20,-2.60886237623762,10.9137792079208,-0.0540351485148515,12.6928415841584 +"205","Qiyu Wu",19:00:21,-1.44864465346535,9.07467326732673,0.0570029702970297,10.7247623762376 +"206","Qiyu Wu",19:00:22,-1.561671,8.8357595,-0.2053542,10.73443 +"207","Qiyu Wu",19:00:23,-1.79281524752475,9.35936584158416,0.174218811881188,11.4909801980198 +"208","Qiyu Wu",19:00:24,-1.924012,10.490418,0.19488401,12.18385 +"209","Qiyu Wu",19:00:25,-2.23012772277228,10.2498653465347,-0.145559405940594,12.2090297029703 +"210","Qiyu Wu",19:00:26,-1.889376,10.01361,0.0819473,11.66019 +"211","Qiyu Wu",19:00:27,-1.91517326732673,8.76620099009901,-0.0585188118811881,10.5358118811881 +"212","Qiyu Wu",19:00:28,-1.57875306930693,8.9634099009901,-0.115934653465347,10.5040693069307 +"213","Qiyu Wu",19:00:29,-1.4941986,8.939722,0.1749831,10.64977 +"214","Qiyu Wu",19:00:30,-2.37010297029703,10.1079623762376,0.0694227722772277,12.0582178217822 +"215","Qiyu Wu",19:00:31,-2.311664,10.6236,0.298991,12.6824 +"216","Qiyu Wu",19:00:32,-2.20099306930693,9.71142089108911,0.0681886336633663,11.6799702970297 +"217","Qiyu Wu",19:00:33,-2.10765346534653,8.86995732673267,-0.480406930693069,10.552603960396 +"218","Qiyu Wu",19:00:34,-2.14416,8.587125,-0.405651,10.6786 +"219","Qiyu Wu",19:00:35,-2.47356732673267,10.276401980198,-0.638565346534653,11.7707722772277 +"220","Qiyu Wu",19:00:36,-2.6367871,10.18371,-0.788928,11.94866 +"221","Qiyu Wu",19:00:37,-1.91838217821782,8.09896168316832,-0.432130693069307,10.5021782178218 +"222","Qiyu Wu",19:00:38,-2.42090881188119,9.49812673267327,0.0179476237623762,11.447099009901 +"223","Qiyu Wu",19:00:39,-2.924125,10.33837,0.021087,12.2103 +"224","Qiyu Wu",19:00:40,-2.48244554455446,9.49417722772277,0.39625801980198,11.1963366336634 +"225","Qiyu Wu",19:00:41,-2.376257,8.35794,-0.65929,10.99338 +"226","Qiyu Wu",19:00:42,-2.3409396039604,9.50006237623762,0.331788108910891,12.5292079207921 +"227","Qiyu Wu",19:00:43,-3.12265,10.399846,0.811207,13.39084 +"228","Qiyu Wu",19:00:44,-2.40137821782178,8.6633198019802,1.22707920792079,9.80920792079208 +"229","Qiyu Wu",19:00:45,-0.0187034653465346,9.17851485148515,3.82237623762376,10.0742574257426 +"230","Qiyu Wu",19:00:46,-0.7360846,9.2561,3.3823,9.9016 +"231","Qiyu Wu",19:00:47,-2.5644198019802,9.66508910891089,0.404391485148515,11.001 +"232","Qiyu Wu",19:00:48,-2.145823,8.204386,-0.4139136,10.48553 +"233","Qiyu Wu",19:00:49,-2.91108712871287,9.6207504950495,-0.550929702970297,11.6033762376238 +"234","Qiyu Wu",19:00:50,-2.05970297029703,9.58565346534654,0.0370038613861386,11.6691089108911 +"235","Qiyu Wu",19:00:51,-2.761719,10.492268,-0.171396,12.25515 +"236","Qiyu Wu",19:00:52,-2.41335643564356,9.8217,0.362441089108911,11.8007920792079 +"237","Qiyu Wu",19:00:53,-2.662272,8.805194,0.01595701,11.16324 +"238","Qiyu Wu",19:00:54,-2.64198118811881,8.61194653465347,-0.282674950495049,10.6903762376238 +"239","Qiyu Wu",19:00:55,-2.68595643564356,8.75722316831683,0.513238613861386,11.274603960396 +"240","Qiyu Wu",19:00:56,-2.645499,11.02415,0.261114,13.18315 +"241","Qiyu Wu",19:00:57,-2.63329504950495,10.1657702970297,0.26546702970297,11.8667128712871 +"242","Qiyu Wu",19:00:58,-2.429293,8.861897,0.2559417,11.12868 +"243","Qiyu Wu",19:00:59,-2.34744455445545,8.48020099009901,-0.319478217821782,10.1189801980198 +"244","Qiyu Wu",19:01:00,-0.361666666666667,-0.519,-0.289333333333333,0.720666666666667 +"245","Ruoyi Wang",19:00:00,-0.06286499,7.1019,7.9468,10.6951 +"246","Ruoyi Wang",19:00:01,-0.194224444444444,8.40881818181818,5.98463636363636,11.3782828282828 +"247","Ruoyi Wang",19:00:02,0.0130161616161616,7.12013535353535,7.05186565656566,10.5955252525253 +"248","Ruoyi Wang",19:00:03,-0.134757575757576,7.13521515151515,5.75123232323232,9.65972727272727 +"249","Ruoyi Wang",19:00:04,-0.1461172,6.43651,4.673474,8.6841 +"250","Ruoyi Wang",19:00:05,-0.188159909090909,8.40019191919192,5.81023232323232,12.6230909090909 +"251","Ruoyi Wang",19:00:06,-0.2733952,8.323627,5.302132,11.5741 +"252","Ruoyi Wang",19:00:07,-0.459687575757576,6.91387131313131,5.36891717171717,10.3130707070707 +"253","Ruoyi Wang",19:00:08,-0.0387029292929293,7.74229292929293,5.67087080808081,10.5431717171717 +"254","Ruoyi Wang",19:00:09,-0.203623,10.6107,6.803761,12.9813 +"255","Ruoyi Wang",19:00:10,-0.29091170212766,6.06554255319149,3.48432978723404,8.56010638297872 +"256","Ruoyi Wang",19:00:11,-0.492914,8.059777,5.801483,11.31863 +"257","Ruoyi Wang",19:00:12,-0.351478787878788,8.42229393939394,7.00361919191919,13.6435353535354 +"258","Ruoyi Wang",19:00:13,-0.1266945,7.18176,4.86787,10.7176 +"259","Ruoyi Wang",19:00:14,-0.138173737373737,6.73504444444444,4.64679494949495,9.23740404040404 +"260","Ruoyi Wang",19:00:15,-0.395746464646465,8.45105,5.21884747474747,10.7807070707071 +"261","Ruoyi Wang",19:00:16,-0.243789,8.855472,4.96305,10.98777 +"262","Ruoyi Wang",19:00:17,-0.61859797979798,8.40906868686869,5.88778686868687,11.7705050505051 +"263","Ruoyi Wang",19:00:18,-0.456079898989899,7.8339101010101,5.64861616161616,11.0174343434343 +"264","Ruoyi Wang",19:00:19,-0.264337,7.470005,5.600013,10.07094 +"265","Ruoyi Wang",19:00:20,-0.0834535353535354,7.32563333333333,5.95121212121212,10.5408484848485 +"266","Ruoyi Wang",19:00:21,0.0838151515151515,5.90168686868687,6.61882121212121,11.0206666666667 +"267","Ruoyi Wang",19:00:22,-0.3273561,7.88892,5.063061,10.65803 +"268","Ruoyi Wang",19:00:23,-0.337653535353535,7.50899494949495,6.20273131313131,11.2641818181818 +"269","Ruoyi Wang",19:00:24,-0.223237,8.2389,5.711878,11.17599 +"270","Ruoyi Wang",19:00:25,-0.985217676767677,9.0079797979798,7.76662626262626,13.1961515151515 +"271","Ruoyi Wang",19:00:26,-1.15331464646465,6.92795151515152,6.16297171717172,11.2446363636364 +"272","Ruoyi Wang",19:00:27,-0.8911593,7.30802,7.958464,11.68 +"273","Ruoyi Wang",19:00:28,-0.468843434343434,6.36656262626263,7.34852525252525,11.6768686868687 +"274","Ruoyi Wang",19:00:29,-0.102711717171717,6.13756565656566,5.81917575757576,10.7106060606061 +"275","Ruoyi Wang",19:00:30,-0.0198872,6.111346,5.417633,9.7488 +"276","Ruoyi Wang",19:00:31,-1.00340848484848,7.64813212121212,7.05468686868687,11.3968282828283 +"277","Ruoyi Wang",19:00:32,-0.424864646464646,8.01690505050505,8.46934696969697,12.9447575757576 +"278","Ruoyi Wang",19:00:33,-1.455962,4.739841,3.95942,8.7446 +"279","Ruoyi Wang",19:00:34,-1.10957373737374,7.20834949494949,10.0078383838384,14.0138282828283 +"280","Ruoyi Wang",19:00:35,-0.542752525252525,7.64788484848485,4.43599494949495,11.5108484848485 +"281","Ruoyi Wang",19:00:36,-0.414656,6.137292,5.4508,10.89009 +"282","Ruoyi Wang",19:00:37,-1.04546565656566,9.14214141414141,7.79050505050505,14.149595959596 +"283","Ruoyi Wang",19:00:38,-1.142459,6.8194129,3.390477,10.03328 +"284","Ruoyi Wang",19:00:39,-1.57097171717172,8.10000909090909,5.39155858585859,13.4636060606061 +"285","Ruoyi Wang",19:00:40,-0.925423232323232,7.79479696969697,9.20383939393939,13.938797979798 +"286","Ruoyi Wang",19:00:41,-0.720903,5.252143,3.633052,9.04697 +"287","Ruoyi Wang",19:00:42,-0.243221212121212,9.46803838383838,5.612,12.5878787878788 +"288","Ruoyi Wang",19:00:43,0.254883535353535,5.76858585858586,8.06060606060606,10.039898989899 +"289","Ruoyi Wang",19:00:44,-0.2207266,6.0608,8.2011,10.3369 +"290","Ruoyi Wang",19:00:45,-0.0242039292929293,5.52677676767677,6.36084242424242,10.0302121212121 +"291","Ruoyi Wang",19:00:46,-0.199497575757576,7.70668686868687,7.48411919191919,12.7766666666667 +"292","Ruoyi Wang",19:00:47,-0.840748,7.0335,5.55625,11.4263 +"293","Ruoyi Wang",19:00:48,-0.283979797979798,7.1150303030303,5.64483838383838,9.7609696969697 +"294","Ruoyi Wang",19:00:49,-1.204042,7.6339,6.62288,13.28603 +"295","Ruoyi Wang",19:00:50,-0.898569696969697,7.7669595959596,6.83371717171717,11.9839292929293 +"296","Ruoyi Wang",19:00:51,-0.766483838383838,7.31986828282828,4.30833434343434,10.6127575757576 +"297","Ruoyi Wang",19:00:52,-0.1676593,9.663087,6.117103,12.46055 +"298","Ruoyi Wang",19:00:53,-0.517536363636364,5.55063636363636,4.41489090909091,10.2929292929293 +"299","Ruoyi Wang",19:00:54,0.869988888888889,9.96791919191919,7.69724242424242,14.7829292929293 +"300","Ruoyi Wang",19:00:55,-0.409645,6.66067,3.642988,10.61841 +"301","Ruoyi Wang",19:00:56,-0.306787878787879,7.14722727272727,6.97846666666667,13.2148181818182 +"302","Ruoyi Wang",19:00:57,-0.777421212121212,8.12221616161616,8.81425151515151,14.6792121212121 +"303","Ruoyi Wang",19:00:58,0.4912025,3.674174,4.908131,10.6405 +"304","Ruoyi Wang",19:00:59,0.455297373737374,9.40042626262626,4.90268585858586,11.8877373737374 +"305","Ruoyi Wang",19:01:00,-1.657,10.348,5.626,11.96 +"306","Vidya Madhaban",19:00:00,-3.16273111111111,-1.03456691919192,13.0653235606061,20.0558282828283 +"307","Vidya Madhaban",19:00:01,-2.24741512690355,3.38478172588832,9.1278269035533,21.2810406091371 +"308","Vidya Madhaban",19:00:02,-1.63822461363636,6.24809797979798,7.38151623737374,16.2051666666667 +"309","Vidya Madhaban",19:00:03,-1.01460340151515,5.93493712121212,7.70555631313131,14.5939393939394 +"310","Vidya Madhaban",19:00:04,-0.0743911616161616,5.83655631313131,7.9147598989899,14.1778282828283 +"311","Vidya Madhaban",19:00:05,-0.666272626262626,5.8134578030303,6.53898166666667,13.1282828282828 +"312","Vidya Madhaban",19:00:06,0.422984166666667,5.83888383838384,7.12074671717172,14.1143686868687 +"313","Vidya Madhaban",19:00:07,1.54958964646465,5.89401111111111,7.27618333333333,13.670404040404 +"314","Vidya Madhaban",19:00:08,1.3533444949495,6.0505303030303,6.37211641414141,12.1895202020202 +"315","Vidya Madhaban",19:00:09,1.71843467929293,6.06103861111111,7.74563560606061,14.0939646464646 +"316","Vidya Madhaban",19:00:10,1.06769857142857,5.92526984126984,8.41216878306878,16.3043650793651 +"317","Vidya Madhaban",19:00:11,-0.45859345959596,5.518825,9.25027641414141,16.6069696969697 +"318","Vidya Madhaban",19:00:12,0.596544931818182,6.09250707070707,9.47806186868687,16.0295707070707 +"319","Vidya Madhaban",19:00:13,0.0713658838383838,6.57534949494949,9.13054146464646,16.0033080808081 +"320","Vidya Madhaban",19:00:14,0.909501868686869,5.61846035353535,8.54833666666667,16.1647474747475 +"321","Vidya Madhaban",19:00:15,0.617700833333333,5.36960252525253,8.32381170454545,15.2488131313131 +"322","Vidya Madhaban",19:00:16,2.20386388888889,4.13398409090909,7.93141464646465,14.5535858585859 +"323","Vidya Madhaban",19:00:17,1.24144863636364,5.05094343434343,6.57848569444444,12.4621464646465 +"324","Vidya Madhaban",19:00:18,0.453403797468354,3.87223848101266,8.38986169620253,15.6939240506329 +"325","Vidya Madhaban",19:00:19,-1.33260176767677,5.67826085858586,8.14848863636364,15.4062373737374 +"326","Vidya Madhaban",19:00:20,-0.637821363636364,6.04702563131313,7.95763744949495,15.7005808080808 +"327","Vidya Madhaban",19:00:21,-1.1781096969697,7.12816237373737,7.63991944444444,14.7837121212121 +"328","Vidya Madhaban",19:00:22,-1.40111262626263,6.8202476010101,7.6218351010101,14.7044949494949 +"329","Vidya Madhaban",19:00:23,-1.57456363636364,6.73349949494949,7.2879244949495,14.8598232323232 +"330","Vidya Madhaban",19:00:24,-2.13276414141414,6.89970580808081,8.06725656565657,14.9244696969697 +"331","Vidya Madhaban",19:00:25,-2.57016818181818,6.16424747474747,8.12500176767677,15.927095959596 +"332","Vidya Madhaban",19:00:26,-2.27824636363636,5.86990883838384,8.34702196969697,15.5800757575758 +"333","Vidya Madhaban",19:00:27,-1.98928108585859,5.05107272727273,8.05040707070707,15.2763636363636 +"334","Vidya Madhaban",19:00:28,-2.04618823232323,4.61119949494949,7.41258611111111,14.4411363636364 +"335","Vidya Madhaban",19:00:29,-1.60098181818182,4.59064065656566,6.93425934343434,13.4238888888889 +"336","Vidya Madhaban",19:00:30,-0.973587474747475,5.35641060606061,7.07135151515152,13.2271464646465 +"337","Vidya Madhaban",19:00:31,-1.28331569949495,6.13703636363636,7.6937446969697,13.9679292929293 +"338","Vidya Madhaban",19:00:32,-0.695472474747475,6.6360095959596,6.91320872474747,13.3997727272727 +"339","Vidya Madhaban",19:00:33,-1.3600454040404,6.14221909090909,8.11930227272727,15.3890151515152 +"340","Vidya Madhaban",19:00:34,-2.26595181818182,6.14171868686869,8.7605478030303,16.5058080808081 +"341","Vidya Madhaban",19:00:35,-1.47031580808081,5.54535151515152,9.90330791666667,17.2191666666667 +"342","Vidya Madhaban",19:00:36,-2.94484121212121,7.06176085858586,6.88768964646465,14.8326262626263 +"343","Vidya Madhaban",19:00:37,-2.75443434343434,7.00687121212121,5.58505808080808,14.0328282828283 +"344","Vidya Madhaban",19:00:38,-2.72946909090909,6.21534767676768,5.82781090909091,13.5414646464646 +"345","Vidya Madhaban",19:00:39,-2.57522727272727,6.13402272727273,4.45419772727273,12.5481313131313 +"346","Vidya Madhaban",19:00:40,-2.52686515151515,6.14385454545455,5.45753055555556,12.9438383838384 +"347","Vidya Madhaban",19:00:41,-2.59633108860759,7.29482086075949,6.24331637974684,13.7280759493671 +"348","Vidya Madhaban",19:00:42,-1.80599924242424,7.968775,6.60213494949495,14.4681565656566 +"349","Vidya Madhaban",19:00:43,-2.41191742424242,7.73344772727273,6.74246529040404,14.4434848484848 +"350","Vidya Madhaban",19:00:44,-2.43792358585859,7.75125126262626,7.31406919191919,14.5269444444444 +"351","Vidya Madhaban",19:00:45,-2.01010631313131,7.70640404040404,6.08855404040404,14.9572474747475 +"352","Vidya Madhaban",19:00:46,-2.34153055555556,6.81526585858586,5.65366186868687,14.8725757575758 +"353","Vidya Madhaban",19:00:47,-2.6196946969697,5.35178914141414,5.30620212121212,14.2409090909091 +"354","Vidya Madhaban",19:00:48,-2.46648782828283,6.05372419191919,5.61486217171717,13.9831565656566 +"355","Vidya Madhaban",19:00:49,-1.7215870959596,6.33973358585859,6.93969426767677,15.5329797979798 +"356","Vidya Madhaban",19:00:50,-2.44792348484848,6.2187952020202,7.40040328282828,17.6901767676768 +"357","Vidya Madhaban",19:00:51,-3.41907803030303,7.23432146464646,7.01838342171717,16.4505303030303 +"358","Vidya Madhaban",19:00:52,-2.16699356060606,7.29444015151515,6.56042575757576,16.8968939393939 +"359","Vidya Madhaban",19:00:53,-2.71206287878788,7.59292974747475,6.9063154040404,16.5405555555556 +"360","Vidya Madhaban",19:00:54,-3.21119828282828,7.65251590909091,7.28808691919192,16.3083585858586 +"361","Vidya Madhaban",19:00:55,-2.92045707070707,7.12692398989899,7.31807636363636,15.8417676767677 +"362","Vidya Madhaban",19:00:56,-3.26307828282828,5.94081717171717,5.89244558080808,15.1889393939394 +"363","Vidya Madhaban",19:00:57,-1.74371727272727,4.66961111111111,5.41526792929293,14.2440909090909 +"364","Vidya Madhaban",19:00:58,-2.33475732323232,5.58732575757576,6.46262061868687,14.7691919191919 +"365","Vidya Madhaban",19:00:59,-4.14314873737374,7.29174287878788,6.47528704545455,16.4510101010101 +"366","Vidya Madhaban",19:01:00,-0.9995875,-3.17875,-0.385675,3.5275 +"367","Wenning Xiao",19:00:00,-1.32247524752475,9.63940594059406,0.0466336633663366,9.7509900990099 +"368","Wenning Xiao",19:00:01,-1.8407,9.5066,-1.2932,14.6293 +"369","Wenning Xiao",19:00:02,-1.67237623762376,10.2381188118812,-1.12475247524752,15.519801980198 +"370","Wenning Xiao",19:00:03,-1.6243,8.8271,-1.2684,12.9004 +"371","Wenning Xiao",19:00:04,-1.00594059405941,8.89584158415842,-2.60811881188119,9.92584158415842 +"372","Wenning Xiao",19:00:05,-2.0836,10.2901,-0.8356,10.8341 +"373","Wenning Xiao",19:00:06,-1.41693069306931,9.39049504950495,-0.918118811881188,15.6025742574257 +"374","Wenning Xiao",19:00:07,-1.4323,9.3681,-0.8146,15.6545 +"375","Wenning Xiao",19:00:08,-1.84178217821782,9.03257425742574,-0.662871287128713,10.8259405940594 +"376","Wenning Xiao",19:00:09,-1.2983,7.8773,-0.6428,12.1393 +"377","Wenning Xiao",19:00:10,-2.30864583333333,10.78,-1.63677083333333,16.9819791666667 +"378","Wenning Xiao",19:00:11,-1.5519,9.9734,-1.2898,16.5653 +"379","Wenning Xiao",19:00:12,-2.18336633663366,10.9043564356436,-1.5449504950495,15.2973267326733 +"380","Wenning Xiao",19:00:13,-1.32633663366337,8.32722772277228,-1.01415841584158,14.3105940594059 +"381","Wenning Xiao",19:00:14,-1.2088,6.8627,-0.9081,13.4914 +"382","Wenning Xiao",19:00:15,-1.98277227722772,10.3142574257426,-1.7470297029703,16.8640594059406 +"383","Wenning Xiao",19:00:16,-1.8813,10.1529,-1.6097,16.3835 +"384","Wenning Xiao",19:00:17,-1.7349504950495,10.5225742574257,-1.56653465346535,15.7234653465347 +"385","Wenning Xiao",19:00:18,-1.7036,9.6739,-1.8514,15.6914 +"386","Wenning Xiao",19:00:19,-0.826633663366337,6.58772277227723,-0.778118811881188,12.7238613861386 +"387","Wenning Xiao",19:00:20,-1.8144,9.1031,-1.4288,15.7614 +"388","Wenning Xiao",19:00:21,-2.02049504950495,10.2966336633663,-2.06415841584158,15.6565346534653 +"389","Wenning Xiao",19:00:22,-1.9108,9.906,-1.7663,16.7486 +"390","Wenning Xiao",19:00:23,-1.6929702970297,10.4152475247525,-1.58831683168317,16.1786138613861 +"391","Wenning Xiao",19:00:24,-1.97861386138614,9.67336633663366,-2.1509900990099,15.169702970297 +"392","Wenning Xiao",19:00:25,-0.6503,6.0165,-0.6834,12.736 +"393","Wenning Xiao",19:00:26,-1.77009900990099,9.51821782178218,-1.65990099009901,15.7679207920792 +"394","Wenning Xiao",19:00:27,-2.0559,10.5602,-2.234,15.5041 +"395","Wenning Xiao",19:00:28,-1.56712871287129,9.54188118811881,-1.96653465346535,15.720099009901 +"396","Wenning Xiao",19:00:29,-2.0182,10.9669,-1.7186,15.7411 +"397","Wenning Xiao",19:00:30,-1.28643564356436,8.65059405940594,-1.59425742574257,14.499801980198 +"398","Wenning Xiao",19:00:31,-0.9749,6.7501,-0.8272,12.9804 +"399","Wenning Xiao",19:00:32,-1.54712871287129,9.2209900990099,-1.67435643564356,15.3463366336634 +"400","Wenning Xiao",19:00:33,-2.0136,10.3904,-2.015,16.9599 +"401","Wenning Xiao",19:00:34,-2.06534653465347,9.53514851485149,-2.18108910891089,16.260396039604 +"402","Wenning Xiao",19:00:35,-1.8231,10.5984,-1.585,15.4852 +"403","Wenning Xiao",19:00:36,-1.96881188118812,9.82118811881188,-1.9560396039604,15.1763366336634 +"404","Wenning Xiao",19:00:37,-1.3409900990099,8.60049504950495,-1.35128712871287,14.97 +"405","Wenning Xiao",19:00:38,-0.8453,6.7862,-0.9442,13.2079 +"406","Wenning Xiao",19:00:39,-1.77435643564356,9.66,-1.57257425742574,15.1547524752475 +"407","Wenning Xiao",19:00:40,-2.1056,10.3015,-1.9067,15.7159 +"408","Wenning Xiao",19:00:41,-1.56118811881188,9.45831683168317,-1.72158415841584,16.1277227722772 +"409","Wenning Xiao",19:00:42,-1.8065,10.2518,-1.595,15.842 +"410","Wenning Xiao",19:00:43,-2.02207920792079,10.1247524752475,-2.25683168316832,15.0576237623762 +"411","Wenning Xiao",19:00:44,-1.5366,8.8397,-1.7801,14.8865 +"412","Wenning Xiao",19:00:45,-1.1629702970297,8.82207920792079,-1.22277227722772,14.0222772277228 +"413","Wenning Xiao",19:00:46,-1.1862,7.274,-1.2993,12.5687 +"414","Wenning Xiao",19:00:47,-1.56138613861386,9.16168316831683,-1.57861386138614,14.6529702970297 +"415","Wenning Xiao",19:00:48,-1.9469,10.129,-2.1692,15.4598 +"416","Wenning Xiao",19:00:49,-1.58594059405941,9.81118811881188,-1.93920792079208,15.4361386138614 +"417","Wenning Xiao",19:00:50,-1.41465346534653,9.59910891089109,-1.78722772277228,15.0793069306931 +"418","Wenning Xiao",19:00:51,-1.4794,10.3504,-1.5497,15.0667 +"419","Wenning Xiao",19:00:52,-1.82138613861386,10.0440594059406,-2.13356435643564,14.720198019802 +"420","Wenning Xiao",19:00:53,-1.312,8.5987,-1.4518,14.3564 +"421","Wenning Xiao",19:00:54,-1.20613861386139,8.19881188118812,-0.775445544554455,13.4526732673267 +"422","Wenning Xiao",19:00:55,-1.471,7.8923,-1.5415,13.1588 +"423","Wenning Xiao",19:00:56,-2.22455445544554,11.3625742574257,-1.55059405940594,13.5432673267327 +"424","Wenning Xiao",19:00:57,-0.8676,9.3312,-1.7171,10.0305 +"425","Wenning Xiao",19:00:58,-1.87623762376238,10.3914851485149,-0.173168316831683,11.6090099009901 +"426","Wenning Xiao",19:00:59,-1.8141,9.7721,-1.7531,16.5451 +"427","Wenning Xiao",19:01:00,2.20666666666667,-7.33,-1.38,9.205 +"428","Xiyun Zhang",19:00:00,3.7883732,-8.50422,0.4318589,9.7566 +"429","Xiyun Zhang",19:00:01,5.04246383838384,-9.155,-2.44029494949495,15.49 +"430","Xiyun Zhang",19:00:02,3.52386,-7.241809,-0.915422,13.0178 +"431","Xiyun Zhang",19:00:03,3.413998,-8.34013,-1.000287,13.0253 +"432","Xiyun Zhang",19:00:04,-0.567983838383838,-10.7962525252525,-2.18277878787879,14.0611111111111 +"433","Xiyun Zhang",19:00:05,-1.529209,-9.10563,-1.1785374,13.04902 +"434","Xiyun Zhang",19:00:06,-1.33306262626263,-8.77668282828283,-1.25963434343434,12.6942424242424 +"435","Xiyun Zhang",19:00:07,-1.123122,-10.78925,-1.537526,13.6208 +"436","Xiyun Zhang",19:00:08,-1.098999,-9.698699,-1.006,13.6245 +"437","Xiyun Zhang",19:00:09,-1.55900262626263,-7.8669797979798,-0.771640404040404,11.365505050505 +"438","Xiyun Zhang",19:00:10,-1.21598,-11.3110484210526,-1.57635157894737,14.2095789473684 +"439","Xiyun Zhang",19:00:11,-1.352444,-9.29203,-0.938568,12.9729 +"440","Xiyun Zhang",19:00:12,-1.27969,-8.386867,-1.106492,12.6865 +"441","Xiyun Zhang",19:00:13,-1.1380202020202,-10.9121919191919,-1.41968888888889,13.9896565656566 +"442","Xiyun Zhang",19:00:14,-1.286862,-9.565863,-1.279638,13.00453 +"443","Xiyun Zhang",19:00:15,-1.1562185,-8.88475,-1.456762,12.4283 +"444","Xiyun Zhang",19:00:16,-1.32435555555556,-10.9605171717172,-1.54791848484848,13.9491919191919 +"445","Xiyun Zhang",19:00:17,-1.2246,-7.47222,-1.006476,11.6878 +"446","Xiyun Zhang",19:00:18,-1.2260797979798,-11.7242222222222,-1.85857373737374,14.4367878787879 +"447","Xiyun Zhang",19:00:19,-1.36229,-7.590701,-0.87872,10.66811 +"448","Xiyun Zhang",19:00:20,-1.17101,-10.60494,-1.785265,14.4767 +"449","Xiyun Zhang",19:00:21,-1.57149090909091,-9.75436565656566,-1.10807676767677,13.5917171717172 +"450","Xiyun Zhang",19:00:22,-1.16072,-8.845256,-1.16614,12.3528 +"451","Xiyun Zhang",19:00:23,-0.898753,-10.17819,-1.054129,12.26157 +"452","Xiyun Zhang",19:00:24,-1.08447070707071,-10.4249090909091,-1.95196565656566,12.1631313131313 +"453","Xiyun Zhang",19:00:25,-1.560894,-7.6222523,-0.46888,12.0695 +"454","Xiyun Zhang",19:00:26,-1.31244646464646,-11.2653545454545,-2.11111111111111,14.0351818181818 +"455","Xiyun Zhang",19:00:27,-0.9954072,-8.07681,-1.089474,11.4781 +"456","Xiyun Zhang",19:00:28,-1.00747,-10.770593,-0.9892604,13.49711 +"457","Xiyun Zhang",19:00:29,-1.01613333333333,-9.29760606060606,-1.60482727272727,12.8047575757576 +"458","Xiyun Zhang",19:00:30,-1.153345,-9.4676,-1.5705974,12.9276 +"459","Xiyun Zhang",19:00:31,-0.9457123,-9.8905,-1.9371941,13.0189 +"460","Xiyun Zhang",19:00:32,-1.30177171717172,-7.88614242424242,-1.07863636363636,11.6052525252525 +"461","Xiyun Zhang",19:00:33,-0.896915,-11.90428,-1.634564,14.8601 +"462","Xiyun Zhang",19:00:34,-1.10629919191919,-8.38724444444444,-1.45348282828283,11.6146464646465 +"463","Xiyun Zhang",19:00:35,-1.365884,-9.07946,-1.136998,12.206 +"464","Xiyun Zhang",19:00:36,-0.825089,-11.074498,-2.0986,14.0647 +"465","Xiyun Zhang",19:00:37,-0.787288282828283,-8.3240202020202,-1.55488888888889,11.6292929292929 +"466","Xiyun Zhang",19:00:38,-1.236376,-9.531981,-1.473197,12.9173 +"467","Xiyun Zhang",19:00:39,-0.711319,-10.95141,-1.8961942,14.222 +"468","Xiyun Zhang",19:00:40,-0.92759696969697,-7.79486868686869,-0.89938101010101,11.7270707070707 +"469","Xiyun Zhang",19:00:41,-1.287816,-10.650667,-1.668253,14.0531 +"470","Xiyun Zhang",19:00:42,-0.764402222222222,-9.80687878787879,-2.93047474747475,13.689797979798 +"471","Xiyun Zhang",19:00:43,-0.87206251,-8.394372,-1.633501,12.3669 +"472","Xiyun Zhang",19:00:44,-0.93519,-8.59569,-1.4972414,12.0181 +"473","Xiyun Zhang",19:00:45,-0.873366666666667,-11.1714444444444,-1.95185252525253,14.6507070707071 +"474","Xiyun Zhang",19:00:46,-0.9543398,-10.107971,-2.471442,14.5045 +"475","Xiyun Zhang",19:00:47,-1.06937,-8.530846,-1.186068,11.6835 +"476","Xiyun Zhang",19:00:48,-1.09379090909091,-8.6699595959596,-1.14238181818182,11.9225252525253 +"477","Xiyun Zhang",19:00:49,-0.7501283,-11.06716,-2.978895,13.696 +"478","Xiyun Zhang",19:00:50,-0.82139,-9.633604,-1.85788,12.1961 +"479","Xiyun Zhang",19:00:51,-1.13351717171717,-8.02644545454545,-1.56125858585859,12.3987878787879 +"480","Xiyun Zhang",19:00:52,-0.868527,-8.88329,-1.455712,12.0734 +"481","Xiyun Zhang",19:00:53,-1.42377575757576,-11.2632323232323,-2.1724398989899,14.2243434343434 +"482","Xiyun Zhang",19:00:54,-0.97202,-10.013465,-2.126145,13.008 +"483","Xiyun Zhang",19:00:55,-0.830193,-8.727466,-1.98422,13.0555 +"484","Xiyun Zhang",19:00:56,-0.982321212121212,-8.91109090909091,-1.30930707070707,13.0428282828283 +"485","Xiyun Zhang",19:00:57,-0.764036,-9.18005,-2.169951,13.2456 +"486","Xiyun Zhang",19:00:58,-0.749474,-9.08357,-1.833025,12.3178 +"487","Xiyun Zhang",19:00:59,-0.863114141414141,-10.6258262626263,-2.27665656565657,13.6908080808081 +"488","Xiyun Zhang",19:01:00,-5.236,-20.18,-6.854,22.08 +"489","Yifei Zhang",19:00:00,-5.28745346534653,-6.44417821782178,-1.95370396039604,10.7581188118812 +"490","Yifei Zhang",19:00:01,0.860235,-10.85988,-3.49297102,13.63874 +"491","Yifei Zhang",19:00:02,-0.4641498,-7.2952508,-2.2326402,13.57896 +"492","Yifei Zhang",19:00:03,1.76037920792079,-10.7072475247525,-3.99195544554455,16.7489405940594 +"493","Yifei Zhang",19:00:04,0.704209,-7.276487,-3.080009,13.71125 +"494","Yifei Zhang",19:00:05,3.08335841584158,-10.9073257425743,-3.515,17.3895643564356 +"495","Yifei Zhang",19:00:06,0.166203,-6.65739,-2.757044,13.38107 +"496","Yifei Zhang",19:00:07,3.528214,-11.56602,-2.153234,15.46227 +"497","Yifei Zhang",19:00:08,1.63835346534653,-6.90202376237624,-1.55874148514851,11.4066534653465 +"498","Yifei Zhang",19:00:09,0.630269,-11.661498,-2.864837,17.08312 +"499","Yifei Zhang",19:00:10,-0.799616666666667,-6.73513229166667,-2.35602291666667,12.8690104166667 +"500","Yifei Zhang",19:00:11,0.155385841584158,-11.2476759405941,-2.76835247524752,16.2975445544554 +"501","Yifei Zhang",19:00:12,-0.084261,-9.42524,-1.2142891,15.31071 +"502","Yifei Zhang",19:00:13,-0.562852,-8.238072,-3.757551,14.28754 +"503","Yifei Zhang",19:00:14,0.74879900990099,-10.1160405940594,-4.08371386138614,16.0071584158416 +"504","Yifei Zhang",19:00:15,-0.38002,-7.005946,-1.7468,11.8146 +"505","Yifei Zhang",19:00:16,-0.705015841584158,-11.2784059405941,-4.3495702970297,15.3057524752475 +"506","Yifei Zhang",19:00:17,0.3915016,-6.225015,-3.98714,13.07268 +"507","Yifei Zhang",19:00:18,-0.866328712871287,-10.5377881188119,-4.00682128712871,16.5380198019802 +"508","Yifei Zhang",19:00:19,-0.280512,-6.544424,-3.00142,11.9224 +"509","Yifei Zhang",19:00:20,-0.484654,-11.28743,-4.3466827,16.01598 +"510","Yifei Zhang",19:00:21,-1.0968603960396,-7.24359188118812,-2.59313663366337,12.1729702970297 +"511","Yifei Zhang",19:00:22,-0.970513,-10.649442,-4.3000234,15.686 +"512","Yifei Zhang",19:00:23,-0.776934653465347,-8.31629702970297,-4.26425544554455,15.4238613861386 +"513","Yifei Zhang",19:00:24,-0.045742,-9.704822,-4.030701,14.9175 +"514","Yifei Zhang",19:00:25,-0.294885247524752,-6.94463366336634,-2.32917128712871,13.4083465346535 +"515","Yifei Zhang",19:00:26,-0.4444426,-10.55158,-6.5204378,19.0385 +"516","Yifei Zhang",19:00:27,0.951592,-5.835877,-3.4614198,14.00264 +"517","Yifei Zhang",19:00:28,-0.465005940594059,-11.3929881188119,-5.33240495049505,17.7634455445545 +"518","Yifei Zhang",19:00:29,-1.866814,-6.36704,-3.12568,14.96088 +"519","Yifei Zhang",19:00:30,0.253080198019802,-10.9975534653465,-5.45395049504951,16.7160792079208 +"520","Yifei Zhang",19:00:31,0.0899497,-6.82818,-2.171996,13.35308 +"521","Yifei Zhang",19:00:32,0.498696,-9.26592,-4.189038,15.2486 +"522","Yifei Zhang",19:00:33,-1.93846732673267,-9.70277623762376,-4.39089207920792,17.0853663366337 +"523","Yifei Zhang",19:00:34,-0.234564,-7.633747,-1.5250546,13.43849 +"524","Yifei Zhang",19:00:35,-1.56126396039604,-10.2428287128713,-1.13197811881188,17.1566138613861 +"525","Yifei Zhang",19:00:36,0.0763336,-9.1060728,-5.183817,18.21061 +"526","Yifei Zhang",19:00:37,-0.969609900990099,-7.51056435643564,-2.57926138613861,14.5156435643564 +"527","Yifei Zhang",19:00:38,-0.2333484,-11.3274077,-3.238751,17.92909 +"528","Yifei Zhang",19:00:39,-1.941378,-6.200436,-2.20229,14.19857 +"529","Yifei Zhang",19:00:40,0.3535,-11.2660297029703,-4.7150198019802,18.6207920792079 +"530","Yifei Zhang",19:00:41,-0.303196,-7.8992071,-2.5914884,13.19841 +"531","Yifei Zhang",19:00:42,-0.935660396039604,-6.91825742574257,-0.951845544554455,14.0727128712871 +"532","Yifei Zhang",19:00:43,-1.4961471,-11.94463,-1.8774285,17.00163 +"533","Yifei Zhang",19:00:44,-0.993919801980198,-6.5909198019802,-1.34604752475248,14.5929603960396 +"534","Yifei Zhang",19:00:45,-0.903499,-7.807754,-3.55046701,13.54366 +"535","Yifei Zhang",19:00:46,-1.569033,-12.365669,-2.50682,19.23975 +"536","Yifei Zhang",19:00:47,-1.43171643564356,-7.65289306930693,-1.22098118811881,13.9328712871287 +"537","Yifei Zhang",19:00:48,-0.31388,-8.648352,-1.17791,16.02132 +"538","Yifei Zhang",19:00:49,-1.85184752475248,-9.03425544554455,-3.16579108910891,15.3352376237624 +"539","Yifei Zhang",19:00:50,-1.4389662,-7.280415,-1.140979,14.68952 +"540","Yifei Zhang",19:00:51,0.149238613861386,-9.76421782178218,-2.53062574257426,16.479099009901 +"541","Yifei Zhang",19:00:52,-1.7560842,-9.67454,-3.530073,17.34506 +"542","Yifei Zhang",19:00:53,-1.591129,-6.851311,-1.893238,15.2865 +"543","Yifei Zhang",19:00:54,-1.16568445544554,-8.00173861386139,-1.70047544554455,13.320495049505 +"544","Yifei Zhang",19:00:55,-1.390209,-12.037345,-0.991186,17.75659 +"545","Yifei Zhang",19:00:56,-1.06844554455446,-8.30821683168317,-1.07310594059406,13.8331386138614 +"546","Yifei Zhang",19:00:57,-1.4023386,-8.91228,-2.050054,14.23182 +"547","Yifei Zhang",19:00:58,-1.38795584158416,-7.58660495049505,-3.33188415841584,14.269 +"548","Yifei Zhang",19:00:59,-1.24143,-9.9605,-0.51956649,10.4898 +"549","Yifei Zhang",19:01:00,0.5214,-10.38,-0.2538,10.38 diff --git a/Group assign-conclusion.docx b/Group assign-conclusion.docx new file mode 100644 index 0000000..479311d Binary files /dev/null and b/Group assign-conclusion.docx differ diff --git a/HUDK4050 HW6.Rmd b/HUDK4050 HW6.Rmd new file mode 100644 index 0000000..eb95743 --- /dev/null +++ b/HUDK4050 HW6.Rmd @@ -0,0 +1,203 @@ +--- +title: "HUDK4050 HW6" +author: "Hangshi Jin" +date: "12/11/2020" +output: html_document +--- + +Data: +x: Back and Forth +y: Up and Down +z: Left and Right +Acceleration: Acceleration during the activity + +Survey Questions: +Name: Name who participates in the activity +Gender: The person's gender: female or Male +Height: Personal Height in cm +Weight: Personal Weight in kg +Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. +Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. +Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. +Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. +Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. +time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). +last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours +num_jumps: Number of jumps the person accomplished in 1-minute. + + +```{r} +library(dplyr) +DF <- read.csv("Clean_data_H5.csv") +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +for(i in 1:nrow(DF)){ + if(DF$avg_z[i]>2.5){ + DF$avg_z[i] = DF$avg_z[i]-8 + } +} +DF$avg_y = abs(DF$avg_y) +DF = DF[,-1] +DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan" +DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1) +names(DF)[1] = "name" +``` +Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams. + +```{r} +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +``` +It turns out that the plot of y variable to be much more efficient after using the absolute value. +Based on the plots, we can tell that most of our data tend to be together with some outliers. + + +```{r} +survey = read.csv("Jump Rope Research.csv") +survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12) +survey1 = survey1[-c(1,2),] +``` + +```{r} +colname = colnames(DF) +colname = colname[-c(1:6)] +for(j in colname){ + for(i in 1:nrow(DF)){ + DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]] + } +} +colname = c(7,10:16) +for(i in colname){DF[,i] = as.factor(DF[,i])} +colname1 = c(8,9,17) +for(i in colname1){DF[,i] = as.numeric(DF[,i])} +``` + + +In the following plots, we would see how each variable in our survey related to the data we got from the app during the activity. + +1: Jump Height and Personal Height +Since y stands for the vertical position of where we put our phone, we assumed that taller people would place their phone higher than those petite ones. +We are, thereofre, interested to see whether taller people tend to jump higher or not. +```{r} +plot(DF$avg_y~DF$height) +``` +Based on what the graph, we can see that there are no clear evidence that these is any relationship between these two variables. + +2: Jump Height and Number of Jumps +Next, we would want to see any correlation between y variable and number of jumps. In other words, if a person jump higher, would he/she tend to jump fewer jumps since it might take more energy to do a higher jump. +```{r} +plot(DF$avg_y~DF$num_jumps) +``` +The plot we got shows that there is no clear relationship between number of jumps and jumping high. It might also indicate that in a short time frame, people tend to jump in a consistent way. Since we only measured in 1-minute, your body would not quickly get tired or exhausted even if you jump higher than normal. + + +3: Acceleration and Fitness Level +Thirdly, we would like to see if fitness level have some effects on acceleration: do people have a higher level of fitness would have a higher value of acceleration during the activity. +```{r} +plot(DF$abs_acceleration~DF$fitness) +``` +The barplot shows that: for those who self reported fitness level at 2 which means a fair level has a mean of acceleration slightly higher than those reported fitness level at 3 which means a good level of fitness. +According to K-mean and PCA, an lower acceleration indicates better in jumping rope, we can tell that the plot proves it. +Though the mean values give a suprising result that people who have better fitness level have lower acceleration, the group with level 3 fitness has a much higher range of acceleration comparing to the other group. +Overall, we can conclude that fitness has some influence on acceleration that people who have higher fitness level would have higher value of acceleration. +In addition, there are some outliers in the barplot which might because that most people choose a moderate answer in the survey question: 2 and 3 which caused some bias. + + +4: Acceleration and Illness Level +We assume that people have lower illness level would have higher acceleration. +```{r} +plot(DF$abs_acceleration~DF$illness) +``` +The barplot shows that people who reported has a moderate illness level at 3 has a much lower acceleration than those who reported little or some illness. The plot proves our assumption that illness level would effect acceleration. +However, we can also see that people who reported little illness 1 effect have a slightly lower mean than those who reported has some illness 2. But level 1 has a much higher range than level 2. +There are also some outliers shows. In level 1, the outliers are those have slower acceleration than most of the others, this might due to some other factors that effect their acceleration during the activity such as fitness level which we just concluded above. +In level 2, the outliers are mainly above the range, this might because of that the illness are not those would directly effect them from doing such activity. Another reason might because they have higher level of fitness that has positive relationship between acceleration. + + + +5: Acceleration and Mood +In this plot, we are interested in whether the happiness level before you jumping the rope would effect your acceleration. In other words, would people with higher happiness level tend to jump quicker? +```{r} +plot(DF$abs_acceleration~DF$happyness) +``` +It is really interested to see how our mood would effect us when doing an activity. Accordign to the plot, we can see a upward treading that higher happiness level have a lower mean value of acceleration. (Higher number indicates higher level sadness.) +Level 3 which is a moderate level of happiness has the highest range in this barplot. It might because of the fitness and illness level that cause this happens but it might also because happiness or mood is hard to define on scale, therefore, most people would choose a moderate answer for this question. + + +```{r} +DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z) +reg = lm(abs_acceleration~., DF1) +summary(reg) +``` +x has a p-value of 2.76e-10 and y has a p-value smaller than 2e-16. Both of these two variables conclude to be significant since their p-value are smaller than 0.05. +The regression model indicates that the x variable which indicates back and forth, and y variable which indicates up and down, are the two significant variables with our response variable: acceleration. + +```{r} +DF = mutate(DF, time = rep(0:60,9)) +``` + +```{r} +library(ggplot2) +ggplot(DF, aes(time, avg_z, colour = name)) + geom_line() + xlab("time") +``` + + +```{r} +pairs(DF1) +``` +In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. +From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape. + +```{r} +cor(DF1) +``` +The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. +The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. +The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables. + + +Checking Normality and Constant Variance based on plots +```{r} +reg1 = lm(abs_acceleration~.,DF1) +plot(reg1) +``` +The first scatterplot of Residuals vs. Fitted values shows a cluster in the center. The plot indicates a violation to the OLS assumption. The unequal scatter might indicate different variances. +The second QQ plot shows the straight line if the errors are distributed normally, but we can see that point 244, 306, and 307 are derived from the line. The qqplot suggests that the data is relatively normally distributed since most of the dots are on the line. +Similar to the first one, the Scale-location show a cluster in the center which is a violation to the assumption of equal variance. +The Residuals vs. Leverage plot tells that point 244, 306, and 307are the levearge points which have the greatest influence on our model + +Chekcing Nomality and Constant Variance statistically +```{r} +sresid <- rstudent(reg1) +hist(sresid, freq = FALSE) +lines(density(sresid), col = "blue", lwd = 3) +xfit <- seq(-4, 4, length = 100) +yfit <- dnorm(xfit, mean = mean(sresid), sd = sd(sresid)) +lines(xfit, yfit, col = "red", lwd = 3) +``` +The normality is skewed to the right slightly. +Conclusion: Not too bad and departure from normality is not too severe, and is skewed to the right so need hypothesis test. + +```{r} +library(car) +qqPlot(reg1) +``` +There are several outliers beyond the CI, need hypothesis test. + +```{r} +shapiro.test(sresid) +``` +Conclusion: Since p-value < 0.05 we reject Ho: Normality fails to hold + + +```{r} +ncvTest(reg1) +``` +p = 0.0010161 < 0.05 +Conclusion: We reject Ho: variance is not constant + + + + diff --git a/HUDK4050 HW6_Kmeans&PCA.Rmd b/HUDK4050 HW6_Kmeans&PCA.Rmd new file mode 100644 index 0000000..a929896 --- /dev/null +++ b/HUDK4050 HW6_Kmeans&PCA.Rmd @@ -0,0 +1,224 @@ +--- +title: "HUDK4050 HW6-Kmeans Clustering & Principal Component Analysis" +author: "Xiyun Zhang" +date: "12/12/2020" +output: html_document +--- + +Data: +x: Back and Forth +y: Up and Down +z: Left and Right +Acceleration: Acceleration during the activity + +Survey Questions: +Name: Name who participates in the activity +Gender: The person's gender: female or Male +Height: Personal Height in cm +Weight: Personal Weight in kg +Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. +Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. +Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. +Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. +Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. +time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). +last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours +num_jumps: Number of jumps the person accomplished in 1-minute. + + + +```{r} +library(dplyr) +DF <- read.csv("Clean_data_H5.csv") +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +for(i in 1:nrow(DF)){ + if(DF$avg_z[i]>2.5){ + DF$avg_z[i] = DF$avg_z[i]-8 + } +} +DF$avg_y = abs(DF$avg_y) +DF = DF[,-1] +DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan" +DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1) +names(DF)[1] = "name" +``` +Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams. + + +```{r} +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +``` +It turns out that the plot of y variable to be much more efficient after using the absolute value. +Based on the plots, we can tell that most of our data tend to be together with some outliers. + + +```{r} +survey = read.csv("Jump Rope Research.csv") +survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12) +survey1 = survey1[-c(1,2),] +``` +```{r} +colname = colnames(DF) +colname = colname[-c(1:6)] +for(j in colname){ + for(i in 1:nrow(DF)){ + DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]] + } +} +colname = c(7,10:16) +for(i in colname){DF[,i] = as.factor(DF[,i])} +colname1 = c(8,9,17) +for(i in colname1){DF[,i] = as.numeric(DF[,i])} +``` + +```{r} +DF = mutate(DF, time = rep(0:60,9)) +``` + +```{r} +DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z) +pairs(DF1) +``` +In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. +From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape. + + +```{r} +cor(DF1) +``` +The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. +The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. +The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables. + + +### K-means analysis +```{r} +#install.packages("stats") +#install.packages("dplyr") +#install.packages("ggplot2") +#install.packages("ggfortify") + +library(stats) +library(dplyr) +library(ggplot2) +library(ggfortify) +str(DF) + +DF2 <- select(DF,c(1,3:6,8:14,17)) +str(DF2) +colname = c(8:12) +for(i in colname){DF2[,i] = as.numeric(levels(DF2[,i]))[DF2[,i]]} +str(DF2) + + +DF2 <- DF2 %>% group_by(name)%>%summarise(avg_x=mean(avg_x), avg_y=mean(avg_y),avg_z=mean(avg_z),abs_acceleration=mean(abs_acceleration),height = mean(height), weight = mean(weight), fitness = mean(fitness), favor = mean(favor), prior = mean(prior), illness = mean(illness), happyness = mean(happyness), num_jumps = mean(num_jumps)) + +DF_kmeans <- scale(DF2[,-1]) + +``` + + +```{r} +#install.packages("factoextra") +library(factoextra) +fviz_nbclust(DF_kmeans, kmeans, method = "wss",k.max=8) + + geom_vline(xintercept = 4, linetype = 2)+ + labs(subtitle = "Elbow method") +``` +The Optimal Numbers of Cluster indicates that we should use k = 4 for further analysis. + + +```{r} +# Compute k-means with k = 4 +set.seed(8) +km4 <- kmeans(DF_kmeans, 4) +autoplot(km4,DF_kmeans,frame=T)+ + labs(title = "Kmeans Clustering with k = 4")+ + theme_bw() +``` + +Although the optimal numbers of clusters indicates we should have 4 clusters, the above plot doesn't give us as useful insights as we thought. It is hardly to separte our group member into two groups: novices and experts. So, we try to use 2-clusters instead. + +```{r} +# Compute k-means with k = 2 +set.seed(6) +km2 <- kmeans(DF_kmeans, 2) +autoplot(km2,DF_kmeans,frame=T) + + geom_text(aes(label=DF2$name),hjust=0, vjust=0)+ + labs(title = "Kmeans Clustering with k = 2")+ + theme_bw() + + +print(km2) +DF2 <- data.frame(DF2, km2$cluster) + +``` + +According to the k-means clustering, we are clustered into two group1: +Group 1 (Novice): Vidya Madhavan, Paolo Rivas, Ruoyi Wang +Group 2 (Experienced): Qiyu Wu, Xiyun Zhang, Kaijie Fang, Hangshi Jin, Yifei Zhang, Wenning Xiao + +We call Group 1 with smaller number of rope jumping and less prior experience Novice while Group 2 with higher number of rope jumping and more prior experience Experienced. + +Given the cluster means, we can see Group 2 (Experienced) has lower absolute means in avg_x, avg_v, avg_z and abs_acceleration, and lower means in weight, fitness, illness and happyness. However, they has higher means in height, favor and prior. + +Thus, we conclude: +1. Group 2 who show a preference for jumping rope and have prior experience can make more jumps in 1 minutes than Group 1. +2. Experienced would move up, down, left and right in a small amplitude and small acceleration. +3. Lower illness level and higher happiness level might contribute being an expert in jumping ropes. +4. It is interested to see experts have lower fitness level than novices. + + + + +### Principal Component Analysis +```{r} +pca <- prcomp(DF_kmeans, scale. = TRUE) +summary(pca) +plot(pca, type = "lines") +(loadings <- abs(pca$rotation)) +#biplot(pca) +``` + +It can be seen from the summary that PC1 and PC2 contribute to 58.19% of the variation of the data while PC1, PC2, PC3 and PC4 contribute to 83.74% of the variation of the data. + +PC1 has comparatively high loading scores for height, weight, abs_acceleration, avg_x and prior. +PC2 has comparatively high loading scores for avg_y, fitness, favor, illness, happyness and num_jumps. + +```{r} +#library(devtools) +#install_github("vqv/ggbiplot") +library(ggbiplot) +#ggbiplot(pca)+ylim(-2,2)+xlim(-2,2.5) +#ggbiplot(pca, labels=DF2$name)+ylim(-2,2)+xlim(-1.5,2.5) + +pca_group <- c(rep("Group A", 3), rep("Group B",2), "Group A", rep("Group B",3)) + +ggbiplot(pca ,ellipse=TRUE, choices = c(1,2), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC1 and PC2")+ theme_bw() + +``` + + +Here, we can see that the variables height, weight, abs_acceleration and avg_x all contribute to PC1, with higher values in those variables moving the samples to the right on this plot. + +After specifying Group A and Group B, we find Group A form a distinct cluster to the right. Looking at the axes, we see that Group A are characterized by high values for height, weight, abs_acceleration and avg_x. Group B, on the other hand, are characterized by high values for prior, favor, and num_jumps and high absolute values for avg_y, illness, fitness and happyness. + +Thus, we conclude: +1. The survey questions does not perfectly separate the group based on novices and experts that both novices and experts have some characteristics that are in the same cluster. +2. However, it is interesting to see that Vidya and Paolo are in the same cluster whom are both categorized as novices based on the K-mean. It might because they have some similarities. +2. Kaijie, Hangshi, Paolo, and Vidya are in group A are the taller ones and have higher average weight in our group. It might because of these facts that make them have higher absolute value of acceleration during the activity. +3. Xiyun, Yifei, Wenning, Qiyu, and Ruoyi are in group B. This group have an overall higher number of jumps. Based on the graph, we might conclude that with more prior experience with jumping ropes and more favor in doing this activity might lead to a higher number of jumps. +4. Another interesting thing here is that though Ruoyi is categorized as a novice and based on the survey question, she jumped 73 times during 1-minuets, she has similar prior experience and favor with the others who are defined as experts. This means that she might be an outlier in the novices group. +5. Another thing that brings to an attention is that fitness has not been counted as a significant value in the PCA plot. + + +```{r} +ggbiplot(pca ,ellipse=TRUE, choices = c(3,4), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC3 and PC4")+ theme_bw() +``` +We don't see much insights of Groups with PC3 and PC4 because they overlapped heavily. + + diff --git a/HUDK4050-HW6.html b/HUDK4050-HW6.html new file mode 100644 index 0000000..b8e1677 --- /dev/null +++ b/HUDK4050-HW6.html @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + +HUDK4050 HW6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Data: x: Back and Forth y: Up and Down z: Left and Right Acceleration: Acceleration during the activity

+

Survey Questions: Name: Name who participates in the activity Gender: The person’s gender: female or Male Height: Personal Height in cm Weight: Personal Weight in kg Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours num_jumps: Number of jumps the person accomplished in 1-minute.

+
library(dplyr)
+
## 
+## Attaching package: 'dplyr'
+
## The following objects are masked from 'package:stats':
+## 
+##     filter, lag
+
## The following objects are masked from 'package:base':
+## 
+##     intersect, setdiff, setequal, union
+
DF <- read.csv("Clean_data_H5.csv")
+plot(DF$avg_x)
+

+
plot(DF$avg_y)
+

+
plot(DF$avg_z)
+

+
for(i in 1:nrow(DF)){
+  if(DF$avg_z[i]>2.5){
+    DF$avg_z[i] = DF$avg_z[i]-8
+  }
+}
+DF$avg_y = abs(DF$avg_y)
+DF = DF[,-1]
+DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan"
+DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1)
+names(DF)[1] = "name"
+

Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams.

+
plot(DF$avg_x)
+

+
plot(DF$avg_y)
+

+
plot(DF$avg_z)
+

It turns out that the plot of y variable to be much more efficient after using the absolute value. Based on the plots, we can tell that most of our data tend to be together with some outliers.

+
survey = read.csv("Jump Rope Research.csv")
+survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12)
+survey1 = survey1[-c(1,2),]
+
colname = colnames(DF)
+colname = colname[-c(1:6)]
+for(j in colname){
+  for(i in 1:nrow(DF)){
+    DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]]
+  }
+}
+colname = c(7,10:16)
+for(i in colname){DF[,i] = as.factor(DF[,i])}
+colname1 = c(8,9,17)
+for(i in colname1){DF[,i] = as.numeric(DF[,i])}
+

In the following plots, we would see how each variable in our survey related to the data we got from the app during the activity.

+

1: Jump Height and Personal Height Since y stands for the vertical position of where we put our phone, we assumed that taller people would place their phone higher than those petite ones. We are, thereofre, interested to see whether taller people tend to jump higher or not.

+
plot(DF$avg_y~DF$height)
+

Based on what the graph, we can see that there are no clear evidence that these is any relationship between these two variables.

+

2: Jump Height and Number of Jumps Next, we would want to see any correlation between y variable and number of jumps. In other words, if a person jump higher, would he/she tend to jump fewer jumps since it might take more energy to do a higher jump.

+
plot(DF$avg_y~DF$num_jumps)
+

The plot we got shows that there is no clear relationship between number of jumps and jumping high. It might also indicate that in a short time frame, people tend to jump in a consistent way. Since we only measured in 1-minute, your body would not quickly get tired or exhausted even if you jump higher than normal.

+

3: Acceleration and Fitness Level Thirdly, we would like to see if fitness level have some effects on acceleration: do people have a higher level of fitness would have a higher value of acceleration during the activity.

+
plot(DF$abs_acceleration~DF$fitness)
+

The barplot shows that: for those who self reported fitness level at 2 which means a fair level has a mean of acceleration slightly higher than those reported fitness level at 3 which means a good level of fitness. According to K-mean and PCA, an lower acceleration indicates better in jumping rope, we can tell that the plot proves it. Though the mean values give a suprising result that people who have better fitness level have lower acceleration, the group with level 3 fitness has a much higher range of acceleration comparing to the other group. Overall, we can conclude that fitness has some influence on acceleration that people who have higher fitness level would have higher value of acceleration. In addition, there are some outliers in the barplot which might because that most people choose a moderate answer in the survey question: 2 and 3 which caused some bias.

+

4: Acceleration and Illness Level We assume that people have lower illness level would have higher acceleration.

+
plot(DF$abs_acceleration~DF$illness)
+

The barplot shows that people who reported has a moderate illness level at 3 has a much lower acceleration than those who reported little or some illness. The plot proves our assumption that illness level would effect acceleration. However, we can also see that people who reported little illness 1 effect have a slightly lower mean than those who reported has some illness 2. But level 1 has a much higher range than level 2. There are also some outliers shows. In level 1, the outliers are those have slower acceleration than most of the others, this might due to some other factors that effect their acceleration during the activity such as fitness level which we just concluded above. In level 2, the outliers are mainly above the range, this might because of that the illness are not those would directly effect them from doing such activity. Another reason might because they have higher level of fitness that has positive relationship between acceleration.

+

5: Acceleration and Mood In this plot, we are interested in whether the happiness level before you jumping the rope would effect your acceleration. In other words, would people with higher happiness level tend to jump quicker?

+
plot(DF$abs_acceleration~DF$happyness)
+

It is really interested to see how our mood would effect us when doing an activity. Accordign to the plot, we can see a upward treading that higher happiness level have a lower mean value of acceleration. (Higher number indicates higher level sadness.) Level 3 which is a moderate level of happiness has the highest range in this barplot. It might because of the fitness and illness level that cause this happens but it might also because happiness or mood is hard to define on scale, therefore, most people would choose a moderate answer for this question.

+
DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z)
+reg = lm(abs_acceleration~., DF1)
+summary(reg)
+
## 
+## Call:
+## lm(formula = abs_acceleration ~ ., data = DF1)
+## 
+## Residuals:
+##     Min      1Q  Median      3Q     Max 
+## -8.2854 -1.9038  0.0692  1.5539 11.9512 
+## 
+## Coefficients:
+##             Estimate Std. Error t value Pr(>|t|)    
+## (Intercept)  8.86118    0.51999  17.041  < 2e-16 ***
+## avg_y        0.64433    0.05769  11.169  < 2e-16 ***
+## avg_x        0.49930    0.07763   6.432 2.76e-10 ***
+## avg_z        0.03080    0.07920   0.389    0.698    
+## ---
+## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+## 
+## Residual standard error: 2.634 on 545 degrees of freedom
+## Multiple R-squared:  0.2444, Adjusted R-squared:  0.2402 
+## F-statistic: 58.76 on 3 and 545 DF,  p-value: < 2.2e-16
+

x has a p-value of 2.76e-10 and y has a p-value smaller than 2e-16. Both of these two variables conclude to be significant since their p-value are smaller than 0.05. The regression model indicates that the x variable which indicates back and forth, and y variable which indicates up and down, are the two significant variables with our response variable: acceleration.

+
DF = mutate(DF, time = rep(0:60,9))
+
library(ggplot2)
+ggplot(DF, aes(time, avg_z, colour = name)) + geom_line() + xlab("time")
+

+
pairs(DF1)
+

In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape.

+
cor(DF1)
+
##                  abs_acceleration       avg_y      avg_x        avg_z
+## abs_acceleration      1.000000000  0.43044889 0.26456843 -0.009613775
+## avg_y                 0.430448894  1.00000000 0.05152961 -0.119315015
+## avg_x                 0.264568434  0.05152961 1.00000000  0.106860542
+## avg_z                -0.009613775 -0.11931501 0.10686054  1.000000000
+

The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables.

+

Checking Normality and Constant Variance based on plots

+
reg1 = lm(abs_acceleration~.,DF1)
+plot(reg1)
+

The first scatterplot of Residuals vs. Fitted values shows a cluster in the center. The plot indicates a violation to the OLS assumption. The unequal scatter might indicate different variances. The second QQ plot shows the straight line if the errors are distributed normally, but we can see that point 244, 306, and 307 are derived from the line. The qqplot suggests that the data is relatively normally distributed since most of the dots are on the line. Similar to the first one, the Scale-location show a cluster in the center which is a violation to the assumption of equal variance. The Residuals vs. Leverage plot tells that point 244, 306, and 307are the levearge points which have the greatest influence on our model

+

Chekcing Nomality and Constant Variance statistically

+
sresid <- rstudent(reg1)
+hist(sresid, freq = FALSE)
+lines(density(sresid), col = "blue", lwd = 3)
+xfit <- seq(-4, 4, length = 100)
+yfit <- dnorm(xfit, mean = mean(sresid), sd = sd(sresid))
+lines(xfit, yfit, col = "red", lwd = 3)
+

The normality is skewed to the right slightly. Conclusion: Not too bad and departure from normality is not too severe, and is skewed to the right so need hypothesis test.

+
library(car)
+
## Loading required package: carData
+
## 
+## Attaching package: 'car'
+
## The following object is masked from 'package:dplyr':
+## 
+##     recode
+
qqPlot(reg1)
+

+
## [1] 306 307
+

There are several outliers beyond the CI, need hypothesis test.

+
shapiro.test(sresid)
+
## 
+##  Shapiro-Wilk normality test
+## 
+## data:  sresid
+## W = 0.98464, p-value = 1.535e-05
+

Conclusion: Since p-value < 0.05 we reject Ho: Normality fails to hold

+
ncvTest(reg1)
+
## Non-constant Variance Score Test 
+## Variance formula: ~ fitted.values 
+## Chisquare = 10.79804, Df = 1, p = 0.0010161
+

p = 0.0010161 < 0.05 Conclusion: We reject Ho: variance is not constant

+ + + + +
+ + + + + + + + + + + + + + + diff --git a/HUDK4050-HW6_Kmeans-PCA.html b/HUDK4050-HW6_Kmeans-PCA.html new file mode 100644 index 0000000..ecb3315 --- /dev/null +++ b/HUDK4050-HW6_Kmeans-PCA.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + +HUDK4050 HW6-Kmeans Clustering & Principal Component Analysis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Data: x: Back and Forth y: Up and Down z: Left and Right Acceleration: Acceleration during the activity

+

Survey Questions: Name: Name who participates in the activity Gender: The person’s gender: female or Male Height: Personal Height in cm Weight: Personal Weight in kg Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours num_jumps: Number of jumps the person accomplished in 1-minute.

+
library(dplyr)
+
## 
+## Attaching package: 'dplyr'
+
## The following objects are masked from 'package:stats':
+## 
+##     filter, lag
+
## The following objects are masked from 'package:base':
+## 
+##     intersect, setdiff, setequal, union
+
DF <- read.csv("Clean_data_H5.csv")
+plot(DF$avg_x)
+

+
plot(DF$avg_y)
+

+
plot(DF$avg_z)
+

+
for(i in 1:nrow(DF)){
+  if(DF$avg_z[i]>2.5){
+    DF$avg_z[i] = DF$avg_z[i]-8
+  }
+}
+DF$avg_y = abs(DF$avg_y)
+DF = DF[,-1]
+DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan"
+DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1)
+names(DF)[1] = "name"
+

Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams.

+
plot(DF$avg_x)
+

+
plot(DF$avg_y)
+

+
plot(DF$avg_z)
+

It turns out that the plot of y variable to be much more efficient after using the absolute value. Based on the plots, we can tell that most of our data tend to be together with some outliers.

+
survey = read.csv("Jump Rope Research.csv")
+survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12)
+survey1 = survey1[-c(1,2),]
+
colname = colnames(DF)
+colname = colname[-c(1:6)]
+for(j in colname){
+  for(i in 1:nrow(DF)){
+    DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]]
+  }
+}
+colname = c(7,10:16)
+for(i in colname){DF[,i] = as.factor(DF[,i])}
+colname1 = c(8,9,17)
+for(i in colname1){DF[,i] = as.numeric(DF[,i])}
+
DF = mutate(DF, time = rep(0:60,9))
+
DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z)
+pairs(DF1)
+

In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape.

+
cor(DF1)
+
##                  abs_acceleration       avg_y      avg_x        avg_z
+## abs_acceleration      1.000000000  0.43044889 0.26456843 -0.009613775
+## avg_y                 0.430448894  1.00000000 0.05152961 -0.119315015
+## avg_x                 0.264568434  0.05152961 1.00000000  0.106860542
+## avg_z                -0.009613775 -0.11931501 0.10686054  1.000000000
+

The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables.

+
+

K-means analysis

+
#install.packages("stats")
+#install.packages("dplyr")
+#install.packages("ggplot2")
+#install.packages("ggfortify")
+
+library(stats)
+library(dplyr)
+library(ggplot2)
+library(ggfortify)
+str(DF)
+
## 'data.frame':    549 obs. of  18 variables:
+##  $ name            : chr  "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" ...
+##  $ time_formated   : chr  "19:00:00" "19:00:01" "19:00:02" "19:00:03" ...
+##  $ avg_x           : num  0.949 0.434 -0.35 -1.409 -1.207 ...
+##  $ avg_y           : num  9.28 10.88 8.03 11.34 7.68 ...
+##  $ avg_z           : num  -0.466 -1.982 -1.458 -1.711 -1.273 ...
+##  $ abs_acceleration: num  9.61 15.72 11.79 15.02 12 ...
+##  $ gender          : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ height          : num  176 176 176 176 176 176 176 176 176 176 ...
+##  $ weight          : num  71 71 71 71 71 71 71 71 71 71 ...
+##  $ fitness         : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
+##  $ favor           : Factor w/ 4 levels "1","2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ prior           : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 2 2 2 2 2 2 2 ...
+##  $ illness         : Factor w/ 3 levels "1","2","3": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ happyness       : Factor w/ 3 levels "2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ time_interval   : Factor w/ 4 levels "Afternoon  (12pm - 4pm)",..: 2 2 2 2 2 2 2 2 2 2 ...
+##  $ last_meal       : Factor w/ 3 levels "1 hour- 2 hours ago",..: 3 3 3 3 3 3 3 3 3 3 ...
+##  $ num_jumps       : num  170 170 170 170 170 170 170 170 170 170 ...
+##  $ time            : int  0 1 2 3 4 5 6 7 8 9 ...
+
DF2 <- select(DF,c(1,3:6,8:14,17))
+str(DF2)
+
## 'data.frame':    549 obs. of  13 variables:
+##  $ name            : chr  "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" ...
+##  $ avg_x           : num  0.949 0.434 -0.35 -1.409 -1.207 ...
+##  $ avg_y           : num  9.28 10.88 8.03 11.34 7.68 ...
+##  $ avg_z           : num  -0.466 -1.982 -1.458 -1.711 -1.273 ...
+##  $ abs_acceleration: num  9.61 15.72 11.79 15.02 12 ...
+##  $ height          : num  176 176 176 176 176 176 176 176 176 176 ...
+##  $ weight          : num  71 71 71 71 71 71 71 71 71 71 ...
+##  $ fitness         : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
+##  $ favor           : Factor w/ 4 levels "1","2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ prior           : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 2 2 2 2 2 2 2 ...
+##  $ illness         : Factor w/ 3 levels "1","2","3": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ happyness       : Factor w/ 3 levels "2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+##  $ num_jumps       : num  170 170 170 170 170 170 170 170 170 170 ...
+
colname = c(8:12)
+for(i in colname){DF2[,i] = as.numeric(levels(DF2[,i]))[DF2[,i]]}
+str(DF2)
+
## 'data.frame':    549 obs. of  13 variables:
+##  $ name            : chr  "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" ...
+##  $ avg_x           : num  0.949 0.434 -0.35 -1.409 -1.207 ...
+##  $ avg_y           : num  9.28 10.88 8.03 11.34 7.68 ...
+##  $ avg_z           : num  -0.466 -1.982 -1.458 -1.711 -1.273 ...
+##  $ abs_acceleration: num  9.61 15.72 11.79 15.02 12 ...
+##  $ height          : num  176 176 176 176 176 176 176 176 176 176 ...
+##  $ weight          : num  71 71 71 71 71 71 71 71 71 71 ...
+##  $ fitness         : num  2 2 2 2 2 2 2 2 2 2 ...
+##  $ favor           : num  2 2 2 2 2 2 2 2 2 2 ...
+##  $ prior           : num  2 2 2 2 2 2 2 2 2 2 ...
+##  $ illness         : num  2 2 2 2 2 2 2 2 2 2 ...
+##  $ happyness       : num  3 3 3 3 3 3 3 3 3 3 ...
+##  $ num_jumps       : num  170 170 170 170 170 170 170 170 170 170 ...
+
DF2 <- DF2 %>% group_by(name)%>%summarise(avg_x=mean(avg_x), avg_y=mean(avg_y),avg_z=mean(avg_z),abs_acceleration=mean(abs_acceleration),height = mean(height), weight = mean(weight), fitness = mean(fitness), favor = mean(favor), prior = mean(prior), illness = mean(illness), happyness = mean(happyness),  num_jumps = mean(num_jumps))
+
## `summarise()` ungrouping output (override with `.groups` argument)
+
DF_kmeans <- scale(DF2[,-1])
+
#install.packages("factoextra")
+library(factoextra)
+
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
+
fviz_nbclust(DF_kmeans, kmeans, method = "wss",k.max=8) +
+  geom_vline(xintercept = 4, linetype = 2)+
+  labs(subtitle = "Elbow method")
+

The Optimal Numbers of Cluster indicates that we should use k = 4 for further analysis.

+
# Compute k-means with k = 4
+set.seed(8)
+km4 <- kmeans(DF_kmeans, 4)
+autoplot(km4,DF_kmeans,frame=T)+
+  labs(title = "Kmeans Clustering with k = 4")+
+  theme_bw()
+
## Warning: `select_()` is deprecated as of dplyr 0.7.0.
+## Please use `select()` instead.
+## This warning is displayed once every 8 hours.
+## Call `lifecycle::last_warnings()` to see where this warning was generated.
+
## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
+## Please use `group_by()` instead.
+## See vignette('programming') for more help
+## This warning is displayed once every 8 hours.
+## Call `lifecycle::last_warnings()` to see where this warning was generated.
+

+

Although the optimal numbers of clusters indicates we should have 4 clusters, the above plot doesn’t give us as useful insights as we thought. It is hardly to separte our group member into two groups: novices and experts. So, we try to use 2-clusters instead.

+
# Compute k-means with k = 2
+set.seed(6)
+km2 <- kmeans(DF_kmeans, 2)
+autoplot(km2,DF_kmeans,frame=T) +
+  geom_text(aes(label=DF2$name),hjust=0, vjust=0)+ 
+  labs(title = "Kmeans Clustering with k = 2")+
+  theme_bw()
+

+
print(km2)
+
## K-means clustering with 2 clusters of sizes 1, 8
+## 
+## Cluster means:
+##        avg_x      avg_y       avg_z abs_acceleration    height     weight
+## 1  2.1196019  0.8138908  0.11850311        1.9790620  1.386280  1.8138785
+## 2 -0.2649502 -0.1017363 -0.01481289       -0.2473828 -0.173285 -0.2267348
+##      fitness      favor      prior    illness happyness  num_jumps
+## 1  0.8432740 -1.5343905 -1.7071584 -0.9428090         0 -1.3502367
+## 2 -0.1054093  0.1917988  0.2133948  0.1178511         0  0.1687796
+## 
+## Clustering vector:
+## [1] 2 2 1 2 2 2 2 2 2
+## 
+## Within cluster sum of squares by cluster:
+## [1]  0.00000 70.13662
+##  (between_SS / total_SS =  26.9 %)
+## 
+## Available components:
+## 
+## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
+## [6] "betweenss"    "size"         "iter"         "ifault"
+
DF2 <- data.frame(DF2, km2$cluster)
+

According to the k-means clustering, we are clustered into two group1: Group 1 (Novice): Vidya Madhavan, Paolo Rivas, Ruoyi Wang Group 2 (Experienced): Qiyu Wu, Xiyun Zhang, Kaijie Fang, Hangshi Jin, Yifei Zhang, Wenning Xiao

+

We call Group 1 with smaller number of rope jumping and less prior experience Novice while Group 2 with higher number of rope jumping and more prior experience Experienced.

+

Given the cluster means, we can see Group 2 (Experienced) has lower absolute means in avg_x, avg_v, avg_z and abs_acceleration, and lower means in weight, fitness, illness and happyness. However, they has higher means in height, favor and prior.

+

Thus, we conclude: 1. Group 2 who show a preference for jumping rope and have prior experience can make more jumps in 1 minutes than Group 1. 2. Experienced would move up, down, left and right in a small amplitude and small acceleration. 3. Lower illness level and higher happiness level might contribute being an expert in jumping ropes. 4. It is interested to see experts have lower fitness level than novices.

+
+
+

Principal Component Analysis

+
pca <- prcomp(DF_kmeans, scale. = TRUE)
+summary(pca)
+
## Importance of components:
+##                         PC1    PC2    PC3    PC4     PC5     PC6     PC7
+## Standard deviation     2.02 1.7039 1.3390 1.1283 1.03879 0.68280 0.54689
+## Proportion of Variance 0.34 0.2419 0.1494 0.1061 0.08992 0.03885 0.02492
+## Cumulative Proportion  0.34 0.5819 0.7313 0.8374 0.92736 0.96622 0.99114
+##                            PC8       PC9
+## Standard deviation     0.32606 2.392e-16
+## Proportion of Variance 0.00886 0.000e+00
+## Cumulative Proportion  1.00000 1.000e+00
+
plot(pca, type = "lines")
+

+
(loadings <- abs(pca$rotation))
+
##                         PC1        PC2        PC3         PC4        PC5
+## avg_x            0.37542580 0.03628051 0.24576930 0.343665683 0.11229841
+## avg_y            0.10603774 0.42667501 0.38495551 0.169102849 0.05687983
+## avg_z            0.07691425 0.06361843 0.29949535 0.005274036 0.86003475
+## abs_acceleration 0.45629833 0.05307350 0.06374263 0.044290147 0.26399670
+## height           0.43226507 0.23396274 0.11868546 0.166704537 0.10642150
+## weight           0.47486405 0.05383270 0.09144776 0.161819915 0.11871398
+## fitness          0.01353252 0.39205328 0.17265215 0.514297501 0.22250314
+## favor            0.21339597 0.34173130 0.42711132 0.129836403 0.24925160
+## prior            0.35916099 0.29235587 0.03604691 0.311830596 0.09151626
+## illness          0.18082309 0.31905162 0.29217340 0.541309996 0.11148995
+## happyness        0.09346788 0.33068504 0.56331481 0.083549327 0.03908439
+## num_jumps        0.07202587 0.43014765 0.24284993 0.344583619 0.12415457
+##                         PC6         PC7        PC8        PC9
+## avg_x            0.30441505 0.571090168 0.27642151 0.33131053
+## avg_y            0.31802799 0.477264783 0.21009371 0.24138678
+## avg_z            0.05118762 0.023554434 0.18679415 0.09070236
+## abs_acceleration 0.27655285 0.232972361 0.22675340 0.39805892
+## height           0.07412206 0.009834898 0.17558808 0.17562999
+## weight           0.04367159 0.110861803 0.18078541 0.21629557
+## fitness          0.45864103 0.173044903 0.14907909 0.03322864
+## favor            0.30152618 0.002927944 0.40213853 0.53265575
+## prior            0.40000835 0.079816139 0.36134646 0.49864657
+## illness          0.24621230 0.104098452 0.02242748 0.12547806
+## happyness        0.05287082 0.294404772 0.61473616 0.15560821
+## num_jumps        0.44158194 0.494996934 0.19160715 0.11926829
+
#biplot(pca)
+

It can be seen from the summary that PC1 and PC2 contribute to 58.19% of the variation of the data while PC1, PC2, PC3 and PC4 contribute to 83.74% of the variation of the data.

+

PC1 has comparatively high loading scores for height, weight, abs_acceleration, avg_x and prior. PC2 has comparatively high loading scores for avg_y, fitness, favor, illness, happyness and num_jumps.

+
#library(devtools)
+#install_github("vqv/ggbiplot")
+library(ggbiplot)
+
## Loading required package: plyr
+
## ------------------------------------------------------------------------------
+
## You have loaded plyr after dplyr - this is likely to cause problems.
+## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
+## library(plyr); library(dplyr)
+
## ------------------------------------------------------------------------------
+
## 
+## Attaching package: 'plyr'
+
## The following objects are masked from 'package:dplyr':
+## 
+##     arrange, count, desc, failwith, id, mutate, rename, summarise,
+##     summarize
+
## Loading required package: scales
+
## Loading required package: grid
+
## 
+## Attaching package: 'ggbiplot'
+
## The following object is masked from 'package:ggfortify':
+## 
+##     ggbiplot
+
#ggbiplot(pca)+ylim(-2,2)+xlim(-2,2.5)
+#ggbiplot(pca, labels=DF2$name)+ylim(-2,2)+xlim(-1.5,2.5)
+
+pca_group <- c(rep("Group A", 3), rep("Group B",2), "Group A", rep("Group B",3))
+
+ggbiplot(pca ,ellipse=TRUE, choices = c(1,2),  labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC1 and PC2")+ theme_bw()
+

+

Here, we can see that the variables height, weight, abs_acceleration and avg_x all contribute to PC1, with higher values in those variables moving the samples to the right on this plot.

+

After specifying Group A and Group B, we find Group A form a distinct cluster to the right. Looking at the axes, we see that Group A are characterized by high values for height, weight, abs_acceleration and avg_x. Group B, on the other hand, are characterized by high values for prior, favor, and num_jumps and high absolute values for avg_y, illness, fitness and happyness.

+

Thus, we conclude: 1. The survey questions does not perfectly separate the group based on novices and experts that both novices and experts have some characteristics that are in the same cluster. 2. However, it is interesting to see that Vidya and Paolo are in the same cluster whom are both categorized as novices based on the K-mean. It might because they have some similarities. 2. Kaijie, Hangshi, Paolo, and Vidya are in group A are the taller ones and have higher average weight in our group. It might because of these facts that make them have higher absolute value of acceleration during the activity. 3. Xiyun, Yifei, Wenning, Qiyu, and Ruoyi are in group B. This group have an overall higher number of jumps. Based on the graph, we might conclude that with more prior experience with jumping ropes and more favor in doing this activity might lead to a higher number of jumps. 4. Another interesting thing here is that though Ruoyi is categorized as a novice and based on the survey question, she jumped 73 times during 1-minuets, she has similar prior experience and favor with the others who are defined as experts. This means that she might be an outlier in the novices group. 5. Another thing that brings to an attention is that fitness has not been counted as a significant value in the PCA plot.

+
ggbiplot(pca ,ellipse=TRUE, choices = c(3,4), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC3 and PC4")+ theme_bw()
+
## Warning: Removed 1 rows containing missing values (geom_text).
+
## Warning: Removed 28 row(s) containing missing values (geom_path).
+

We don’t see much insights of Groups with PC3 and PC4 because they overlapped heavily.

+
+ + + + +
+ + + + + + + + + + + + + + + diff --git a/Jump Rope Research.csv b/Jump Rope Research.csv new file mode 100644 index 0000000..60150a8 --- /dev/null +++ b/Jump Rope Research.csv @@ -0,0 +1,12 @@ +StartDate,EndDate,Status,IPAddress,Progress,Duration (in seconds),Finished,RecordedDate,ResponseId,RecipientLastName,RecipientFirstName,RecipientEmail,ExternalReference,LocationLatitude,LocationLongitude,DistributionChannel,UserLanguage,Q1,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12 +Start Date,End Date,Response Type,IP Address,Progress,Duration (in seconds),Finished,Recorded Date,Response ID,Recipient Last Name,Recipient First Name,Recipient Email,External Data Reference,Location Latitude,Location Longitude,Distribution Channel,User Language,Your Name,Age,Gender,Your Height (cm) -- please type the number only,Your Weight(kg) -- please type the number only,Rate your overall fitness on a scale of 1- 5(1. Poor 2. Fair 3. Good 4. Very good 5. Excellent),"Do you like rope jumping? (1 being you do not like it much, 5 being like it very much)",Do you have prior experience of jumping rope? ( 1 being you do not have much experience and 5 being you have a lot of experience ),How much does your physical/other illness affect your ability to jump rope (0 being you have no,"On a scale of very happy (being 1) to very sad (being 5), what would you rate your mood before starting rope jumping?",Did you jump ropes in the ____,How long before jumping rope did you have your last meal?,"How many times were you able to jump in 1 minute, while the data was collected?(Please mention your mental count of jumps, not from the data)" +"{""ImportId"":""startDate"",""timeZone"":""America/Denver""}","{""ImportId"":""endDate"",""timeZone"":""America/Denver""}","{""ImportId"":""status""}","{""ImportId"":""ipAddress""}","{""ImportId"":""progress""}","{""ImportId"":""duration""}","{""ImportId"":""finished""}","{""ImportId"":""recordedDate"",""timeZone"":""America/Denver""}","{""ImportId"":""_recordId""}","{""ImportId"":""recipientLastName""}","{""ImportId"":""recipientFirstName""}","{""ImportId"":""recipientEmail""}","{""ImportId"":""externalDataReference""}","{""ImportId"":""locationLatitude""}","{""ImportId"":""locationLongitude""}","{""ImportId"":""distributionChannel""}","{""ImportId"":""userLanguage""}","{""ImportId"":""QID17_TEXT""}","{""ImportId"":""QID9_TEXT""}","{""ImportId"":""QID8""}","{""ImportId"":""QID6_TEXT""}","{""ImportId"":""QID7_TEXT""}","{""ImportId"":""QID12""}","{""ImportId"":""QID1""}","{""ImportId"":""QID13""}","{""ImportId"":""QID14""}","{""ImportId"":""QID15""}","{""ImportId"":""QID11""}","{""ImportId"":""QID10""}","{""ImportId"":""QID16_TEXT""}" +2020-12-06 18:14:47,2020-12-06 18:26:12,IP Address,13.94.56.150,100,685,True,2020-12-06 18:26:13,R_24CqAA5JoBFSPxR,,,,,22.2794952392578125,114.14599609375,anonymous,EN,Wenning Xiao,23,Female,166,50,2,3,4,2,3,Morning (6 am - 12pm),more than 2 hours,100 +2020-12-06 19:51:56,2020-12-06 19:54:01,IP Address,68.252.127.25,100,124,True,2020-12-06 19:54:01,R_29uekjk6eMGw4mP,,,,,32.8594970703125,-117.21240234375,anonymous,EN,Qiyu Wu,23,Female,158,40,3,3,4,1,3,Evening (4 pm - 10 pm),more than 2 hours,130 +2020-12-07 03:35:24,2020-12-07 03:36:21,IP Address,45.130.147.71,100,57,True,2020-12-07 03:36:22,R_3isZnnygJ8l7zbg,,,,,55.7386016845703125,37.6067962646484375,anonymous,EN,Yifei Zhang,22,Female,168,55,3,4,5,1,3,Evening (4 pm - 10 pm),1 hour- 2 hours ago,138 +2020-12-07 04:53:40,2020-12-07 04:55:06,IP Address,60.180.232.178,100,86,True,2020-12-07 04:55:07,R_2YXLvFNReTFbZwe,,,,,27.9983062744140625,120.666595458984375,anonymous,EN,Kaijie Fang,22,Female,172,60,2,3,4,1,3,Evening (4 pm - 10 pm),more than 2 hours,137 +2020-12-07 07:47:21,2020-12-07 07:49:57,IP Address,154.17.6.53,100,156,True,2020-12-07 07:49:57,R_3pnHOMdlFm65d6G,,,,,34.0543975830078125,-118.2440032958984375,anonymous,EN,Xiyun Zhang,23,Female,165,52.5,2,3,4,2,2,Evening (4 pm - 10 pm),30mins-1 hour ago,145 +2020-12-07 22:09:26,2020-12-07 22:10:24,IP Address,115.97.8.145,100,57,True,2020-12-07 22:10:24,R_3Ny87hyaA4d8XsZ,,,,,13.087799072265625,80.27850341796875,anonymous,EN,Vidya Madhavan,26,Female,168,65,3,3,2,2,4,Morning (6 am - 12pm),more than 2 hours,120 +2020-12-08 00:20:01,2020-12-08 00:21:24,IP Address,115.234.10.23,100,83,True,2020-12-08 00:21:25,R_33vWzvjtqj6RVLp,,,,,27.9983062744140625,120.666595458984375,anonymous,EN,Hangshi Jin,23,Male,176,71,2,2,2,2,3,Evening (4 pm - 10 pm),more than 2 hours,170 +2020-12-08 22:59:33,2020-12-08 23:05:30,IP Address,107.172.97.122,100,357,True,2020-12-08 23:05:30,R_1jy8L68BN6mDP6t,,,,,37.751007080078125,-97.82199859619140625,anonymous,EN,Ruoyi Wang,23,Female,154,40,3,1,3,3,3,Afternoon (12pm - 4pm),30mins-1 hour ago,73 +2020-12-08 20:36:46,2020-12-09 17:17:59,IP Address,181.64.4.245,100,74472,True,2020-12-09 17:17:59,R_b48MwBVPS6WKCml,,,,,-12.0464019775390625,-77.0428009033203125,anonymous,EN,Paolo Rivas,31,Male,178,83,3,1,1,1,3,Night (10 pm - 6 am),1 hour- 2 hours ago,78 diff --git a/R_cleaning_H5.Rmd b/R_cleaning_H5.Rmd new file mode 100644 index 0000000..b2ce948 --- /dev/null +++ b/R_cleaning_H5.Rmd @@ -0,0 +1,55 @@ +--- +title: "H5_data_cleaning" +author: "Paolo Rivas" +date: "12/11/2020" +output: html_document +--- + +## Data Cleaning H5 +Here we have two mayor problems. The first one, there are different amounts of data points per users. Second, our time variable is shown as a character with an excesive ammount of milliseconds. None of those are useful for a uniform measurement. + +Stept 1: import Dataframe an summarize information + +```{r} + +library(tidyverse) + +DF <- read_csv("~/Documents/raw_data_H5_all.csv") +summary(DF) + +``` +Step 2: transform time(s) into timeframe data. +```{r} +class(DF$`Time (s)`) +``` +```{r} +#this format works for formating time correctly into seconds and milliseconds +t <- 0.00250; +t2<- format(as.POSIXct(t, origin = "2020-01-12", tz = "America/chicago"), "%H:%M:%OS3") +class(t2) +#Now lets format this new character into time +install.packages("chron") +library(chron) +x <- chron(times=t2) +class(x) + +#### Now lets do it for our data + +t3 <- format(as.POSIXct(DF$`Time (s)`, origin = "2020-01-12", tz = "America/New_York"), "%H:%M:%S") +DF$time_formated <- chron(times=t3) +class(DF$time_formated) #We have a time daframe! +``` +## Now, lets create time average dplyr with a double group_by + +```{r} +library(dplyr) +DF_clean <- DF %>% + group_by(Participant, time_formated) %>% + summarise(avg_x = mean(`Acceleration x (m/s^2)`),avg_y = mean(`Acceleration y (m/s^2)`), avg_z = mean(`Acceleration z (m/s^2)`) ) + +``` +## Exporting the data to CSv +```{r} +write.csv(df, "Clean_data_H5.csv") +``` +