rm(list=ls(all=T)); gc()
##           used (Mb) gc trigger (Mb) max used (Mb)
## Ncells  516963 27.7    1172462 62.7   609148 32.6
## Vcells 1005352  7.7    8388608 64.0  1604909 12.3
library(knitr); opts_chunk$set(comment = NA)
library(Matrix)
library(dplyr)
#install.packages("googleVis")
library(googleVis)
library(doParallel)
library(Rtsne)
#install.packages("wordcloud")
library(wordcloud)
library(RColorBrewer)
library(randomcoloR)
#install.packages("d3heatmap")
library(d3heatmap)
library(morpheus)
library(FactoMineR)
library(factoextra)
library(highcharter)
library(tm)
library(slam)
library(MASS)

options(width=100, gvis.plot.tag='chart', digits=4, scipen=60)
#options(width=100, digits=4, scipen=60)
Load Data
prep2 = "prep2/"
load(paste0(prep2,"businesses.rdata"))
load(paste0(prep2,"reviews.rdata"))
Merge sentiment score into rev
rev = cbind(rev, senti[,-1])
range(rev$date)
[1] "2004-07-22" "2017-07-26"
#rev$year =  as.integer(format(rev$date, "%Y"))
breaks = as.Date(c("2004-07-22", paste0(2005:2017, "-07-27")))
rev$year = as.integer(cut(rev$date, breaks)) + 2004

(1) 評論數量最多的100個商店

1.1 Top100 bid
b100 = rev %>% count(bid) %>% arrange(desc(n)) %>% head(100) %>% .$bid
1.2 Summarise reviews by bid and year
df = rev %>% filter(bid %in% b100) %>% 
  group_by(bid, year) %>% 
  summarise(
    positive = mean(positive),
    negative = mean(negative),
    sad = mean(sadness),
    n = n()
    )
1.3 Biz that have review every year after 2009
y09 = df %>% filter(year >= 2009) %>% count(bid) %>% filter(nn == 9) %>% .$bid
1.4 Google Motion Chart
df %>% filter(year >= 2010 & year <= 2016 & bid %in% y09) %>% 
  data.frame %>% 
  gvisMotionChart("bid", "year") %>% plot
<!-- MotionChart generated in R 3.5.1 by googleVis 0.6.2 package -->
<!-- Fri Aug 31 15:34:43 2018 -->


<!-- jsHeader -->
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartID1d6c1b77456 () {
var data = new google.visualization.DataTable();
var datajson =
[
 [
"5655",
2010,
5.094594595,
2.297297297,
1.175675676,
74
],
[
"5655",
2011,
5.072289157,
1.722891566,
0.8313253012,
83
],
[
"5655",
2012,
5.302816901,
2.077464789,
0.985915493,
142
],
[
"5655",
2013,
5.324324324,
2.168918919,
1.006756757,
148
],
[
"5655",
2014,
5.537234043,
2.372340426,
1.127659574,
188
],
[
"5655",
2015,
5.537634409,
1.953405018,
0.9247311828,
279
],
[
"5655",
2016,
5.12793177,
1.940298507,
0.9125799574,
469
],
[
"8358",
2010,
6.099236641,
2.465648855,
1.122137405,
131
],
[
"8358",
2011,
5.696428571,
2.166666667,
1.089285714,
168
],
[
"8358",
2012,
5.623318386,
2.273542601,
1.143497758,
223
],
[
"8358",
2013,
5.701492537,
2.328358209,
1.253731343,
201
],
[
"8358",
2014,
5.094339623,
1.958490566,
0.9471698113,
265
],
[
"8358",
2015,
5.617161716,
2.254125413,
1.092409241,
303
],
[
"8358",
2016,
5.208633094,
2.14028777,
0.9820143885,
278
],
[
"9250",
2010,
5.649681529,
2.006369427,
0.8535031847,
314
],
[
"9250",
2011,
5.666666667,
2.355555556,
1.037037037,
405
],
[
"9250",
2012,
5.673410405,
2.257225434,
1.020231214,
346
],
[
"9250",
2013,
5.814516129,
2.325268817,
1.088709677,
372
],
[
"9250",
2014,
5.372400756,
2.187145558,
0.9867674858,
529
],
[
"9250",
2015,
5.348404255,
2.111702128,
0.9281914894,
376
],
[
"9250",
2016,
5.842105263,
2.266447368,
1,
304
],
[
"11267",
2010,
6.727272727,
2.524793388,
1.190082645,
242
],
[
"11267",
2011,
5.365517241,
1.789655172,
0.9551724138,
290
],
[
"11267",
2012,
5.935691318,
2.180064309,
1.045016077,
311
],
[
"11267",
2013,
5.615384615,
2.240802676,
1.02006689,
299
],
[
"11267",
2014,
5.766666667,
2.281481481,
1.096296296,
270
],
[
"11267",
2015,
5.603603604,
2.315315315,
0.993993994,
333
],
[
"11267",
2016,
5.892388451,
1.997375328,
1.01312336,
381
],
[
"11418",
2010,
5.195266272,
2.171597633,
0.9940828402,
169
],
[
"11418",
2011,
5.757425743,
2.495049505,
1.133663366,
202
],
[
"11418",
2012,
5.102409639,
2.012048193,
1.102409639,
166
],
[
"11418",
2013,
5.692307692,
2.28021978,
0.9945054945,
182
],
[
"11418",
2014,
5.439814815,
2.157407407,
0.8796296296,
216
],
[
"11418",
2015,
5.904191617,
2.161676647,
0.9760479042,
167
],
[
"11418",
2016,
5.773195876,
2.180412371,
1.005154639,
194
],
[
"12339",
2010,
5.037037037,
1.798941799,
0.8994708995,
189
],
[
"12339",
2011,
5.56097561,
2.178861789,
1.040650407,
246
],
[
"12339",
2012,
5.050359712,
2.043165468,
1.04676259,
278
],
[
"12339",
2013,
5.03875969,
1.810077519,
0.9689922481,
258
],
[
"12339",
2014,
5.490625,
2.203125,
1.06875,
320
],
[
"12339",
2015,
5.512626263,
2.138888889,
1.070707071,
396
],
[
"12339",
2016,
5.416445623,
2.106100796,
1.029177719,
377
],
[
"14496",
2010,
5.647887324,
2.366197183,
1.126760563,
71
],
[
"14496",
2011,
5.018181818,
2.3,
0.9636363636,
110
],
[
"14496",
2012,
4.520231214,
2.10982659,
0.9075144509,
173
],
[
"14496",
2013,
5.362162162,
2.324324324,
1,
185
],
[
"14496",
2014,
5.201793722,
2.322869955,
1.125560538,
223
],
[
"14496",
2015,
5.577358491,
2.377358491,
1.052830189,
265
],
[
"14496",
2016,
5.906367041,
2.191011236,
1.041198502,
267
],
[
"18352",
2010,
5.530434783,
1.930434783,
0.9217391304,
115
],
[
"18352",
2011,
5.286549708,
2.502923977,
1,
171
],
[
"18352",
2012,
5.276923077,
2.261538462,
0.9538461538,
195
],
[
"18352",
2013,
5.505376344,
2.284946237,
1,
186
],
[
"18352",
2014,
5.703196347,
2.073059361,
0.8767123288,
219
],
[
"18352",
2015,
5.6069869,
2.310043668,
1.043668122,
229
],
[
"18352",
2016,
5.533653846,
2.307692308,
1.028846154,
208
],
[
"19802",
2010,
5.781609195,
2.310344828,
1.126436782,
87
],
[
"19802",
2011,
5.338345865,
2.285714286,
1.022556391,
133
],
[
"19802",
2012,
5.926829268,
2.414634146,
1.079268293,
164
],
[
"19802",
2013,
5.99408284,
2.218934911,
0.9526627219,
169
],
[
"19802",
2014,
5.796460177,
2.39380531,
1.066371681,
226
],
[
"19802",
2015,
5.375838926,
2.174496644,
0.9966442953,
298
],
[
"19802",
2016,
5.909620991,
2.367346939,
1.029154519,
343
],
[
"19904",
2010,
5.82781457,
2.430463576,
0.9933774834,
151
],
[
"19904",
2011,
5.310880829,
2.025906736,
0.9740932642,
193
],
[
"19904",
2012,
5.634782609,
2.508695652,
1.147826087,
230
],
[
"19904",
2013,
5.668085106,
2.25106383,
1,
235
],
[
"19904",
2014,
5.84057971,
2.315217391,
1.043478261,
276
],
[
"19904",
2015,
5.646575342,
2.336986301,
1.032876712,
365
],
[
"19904",
2016,
5.399515738,
2.072639225,
0.9370460048,
413
],
[
"22425",
2010,
5.5,
2.019047619,
0.9380952381,
210
],
[
"22425",
2011,
5.083333333,
1.797101449,
0.9166666667,
276
],
[
"22425",
2012,
5.458204334,
2.00619195,
0.9969040248,
323
],
[
"22425",
2013,
5.576433121,
2.101910828,
1.038216561,
314
],
[
"22425",
2014,
5.049180328,
1.953161593,
0.9414519906,
427
],
[
"22425",
2015,
5.454741379,
2.012931034,
0.9310344828,
464
],
[
"22425",
2016,
5.17555938,
1.907056799,
0.8795180723,
581
],
[
"27827",
2010,
5.168674699,
2.072289157,
0.9819277108,
166
],
[
"27827",
2011,
5.127192982,
1.951754386,
0.9254385965,
228
],
[
"27827",
2012,
5.497991968,
1.915662651,
0.8915662651,
249
],
[
"27827",
2013,
5.293023256,
2.065116279,
1.004651163,
215
],
[
"27827",
2014,
6.288288288,
2.283783784,
1.094594595,
222
],
[
"27827",
2015,
6.101973684,
2.411184211,
1.111842105,
304
],
[
"27827",
2016,
5.201438849,
2.028776978,
0.9892086331,
278
],
[
"31105",
2010,
5.405405405,
1.675675676,
0.7297297297,
74
],
[
"31105",
2011,
5.613756614,
2.238095238,
0.9947089947,
189
],
[
"31105",
2012,
6.2,
2.430769231,
1.096153846,
260
],
[
"31105",
2013,
6.02238806,
2.246268657,
1.007462687,
268
],
[
"31105",
2014,
5.983870968,
2.206451613,
0.9967741935,
310
],
[
"31105",
2015,
6.404129794,
2.463126844,
1.115044248,
339
],
[
"31105",
2016,
5.799295775,
2.161971831,
0.9401408451,
284
],
[
"33080",
2010,
5.575471698,
2.528301887,
1.113207547,
212
],
[
"33080",
2011,
5.504347826,
2.317391304,
1.017391304,
230
],
[
"33080",
2012,
5.336,
2.356,
1.02,
250
],
[
"33080",
2013,
5.663716814,
2.305309735,
1.030973451,
226
],
[
"33080",
2014,
5.756410256,
2.401709402,
1.047008547,
234
],
[
"33080",
2015,
5.909090909,
2.402597403,
1.125541126,
231
],
[
"33080",
2016,
5.575645756,
2.298892989,
1.033210332,
271
],
[
"35265",
2010,
5.64,
1.984615385,
0.8492307692,
325
],
[
"35265",
2011,
5.527629234,
2.10516934,
0.9786096257,
561
],
[
"35265",
2012,
5.473584906,
2.066037736,
0.9886792453,
530
],
[
"35265",
2013,
5.676891616,
2.155419223,
1.067484663,
489
],
[
"35265",
2014,
5.481164384,
2.150684932,
1.020547945,
584
],
[
"35265",
2015,
5.69295302,
2.172818792,
1.001677852,
596
],
[
"35265",
2016,
5.337016575,
2.208103131,
1.02946593,
543
],
[
"35266",
2010,
5.321243523,
1.792746114,
0.9274611399,
193
],
[
"35266",
2011,
5.840425532,
2.244680851,
1.067375887,
282
],
[
"35266",
2012,
5.570032573,
2.214983713,
1.029315961,
307
],
[
"35266",
2013,
5.386292835,
2.168224299,
1.021806854,
321
],
[
"35266",
2014,
5.5,
2.139175258,
0.8969072165,
388
],
[
"35266",
2015,
5.651785714,
2.209821429,
0.9620535714,
448
],
[
"35266",
2016,
5.59922179,
2.16536965,
0.9785992218,
514
],
[
"35619",
2010,
5.699029126,
2.368932039,
1.126213592,
103
],
[
"35619",
2011,
5.569148936,
2,
0.9042553191,
188
],
[
"35619",
2012,
6.650224215,
2.322869955,
1.103139013,
223
],
[
"35619",
2013,
5.944162437,
2.228426396,
1.010152284,
197
],
[
"35619",
2014,
5.594890511,
2.145985401,
0.9270072993,
274
],
[
"35619",
2015,
5.421052632,
2.180451128,
1.022556391,
266
],
[
"35619",
2016,
5.74516129,
2.464516129,
1.148387097,
310
],
[
"37495",
2010,
5.571428571,
2.263736264,
1,
91
],
[
"37495",
2011,
4.966666667,
1.875,
0.7916666667,
120
],
[
"37495",
2012,
5.664772727,
2.232954545,
1.085227273,
176
],
[
"37495",
2013,
5.671232877,
2.020547945,
0.904109589,
146
],
[
"37495",
2014,
5.581196581,
2.051282051,
0.8675213675,
234
],
[
"37495",
2015,
5.5,
2.269461078,
0.9730538922,
334
],
[
"37495",
2016,
5.463215259,
2.046321526,
0.8773841962,
367
],
[
"40341",
2010,
6,
2.490196078,
1.137254902,
51
],
[
"40341",
2011,
5.062893082,
2.245283019,
0.9811320755,
159
],
[
"40341",
2012,
5.925465839,
2.459627329,
1.080745342,
161
],
[
"40341",
2013,
6.711764706,
2.841176471,
1.341176471,
170
],
[
"40341",
2014,
5.968,
2.36,
0.976,
250
],
[
"40341",
2015,
5.901840491,
2.174846626,
0.990797546,
326
],
[
"40341",
2016,
5.932659933,
2.397306397,
1.171717172,
297
],
[
"46473",
2010,
6.5625,
2.46875,
1.28125,
32
],
[
"46473",
2011,
5.645833333,
1.916666667,
0.8125,
144
],
[
"46473",
2012,
6.08974359,
2.314102564,
1.064102564,
156
],
[
"46473",
2013,
5.50625,
2.14375,
0.9625,
160
],
[
"46473",
2014,
5.18503937,
2.039370079,
0.9094488189,
254
],
[
"46473",
2015,
6.028,
2.32,
1.108,
250
],
[
"46473",
2016,
5.86122449,
2.318367347,
1.069387755,
245
],
[
"57466",
2010,
6.383333333,
2.533333333,
1.05,
120
],
[
"57466",
2011,
6.060773481,
2.419889503,
1.022099448,
181
],
[
"57466",
2012,
5.558139535,
2.11627907,
0.9476744186,
172
],
[
"57466",
2013,
5.179487179,
2.423076923,
1.006410256,
156
],
[
"57466",
2014,
6.072289157,
2.558232932,
1.212851406,
249
],
[
"57466",
2015,
5.712374582,
2.200668896,
0.9565217391,
299
],
[
"57466",
2016,
5.740506329,
2.560126582,
1.101265823,
316
],
[
"62126",
2010,
4.681818182,
1.954545455,
0.9090909091,
66
],
[
"62126",
2011,
6.521276596,
2.319148936,
1.191489362,
94
],
[
"62126",
2012,
5.640776699,
2.388349515,
1.058252427,
103
],
[
"62126",
2013,
5.919354839,
1.911290323,
0.9112903226,
124
],
[
"62126",
2014,
5.468085106,
2.409574468,
1.042553191,
188
],
[
"62126",
2015,
5.292479109,
1.91643454,
0.8105849582,
359
],
[
"62126",
2016,
5.910669975,
2.133995037,
1.039702233,
403
],
[
"62276",
2010,
6.302631579,
2.539473684,
1.078947368,
76
],
[
"62276",
2011,
5.229508197,
2.090163934,
0.9836065574,
122
],
[
"62276",
2012,
5.594594595,
2.540540541,
1.145945946,
185
],
[
"62276",
2013,
5.661202186,
2.18579235,
1.098360656,
183
],
[
"62276",
2014,
5.080357143,
1.928571429,
0.9553571429,
224
],
[
"62276",
2015,
5.556270096,
2.231511254,
1.189710611,
311
],
[
"62276",
2016,
5.113095238,
2.098214286,
0.9672619048,
336
],
[
"67127",
2010,
5.66384778,
2.268498943,
1.021141649,
473
],
[
"67127",
2011,
6,
2.472616633,
1.152129817,
493
],
[
"67127",
2012,
5.785123967,
2.365702479,
1.097107438,
484
],
[
"67127",
2013,
5.497005988,
2.284431138,
1.056886228,
334
],
[
"67127",
2014,
5.48655914,
2.333333333,
1.080645161,
372
],
[
"67127",
2015,
6.021917808,
2.331506849,
1.123287671,
365
],
[
"67127",
2016,
5.599056604,
2.20754717,
1.023584906,
424
],
[
"72785",
2010,
5.245283019,
1.943396226,
0.8490566038,
106
],
[
"72785",
2011,
6.19375,
2.39375,
0.93125,
160
],
[
"72785",
2012,
5.552631579,
2.110526316,
1.105263158,
190
],
[
"72785",
2013,
5.849557522,
2.411504425,
1.154867257,
226
],
[
"72785",
2014,
5.869955157,
2.219730942,
1.049327354,
223
],
[
"72785",
2015,
5.848484848,
2.272727273,
1.090909091,
264
],
[
"72785",
2016,
5.425076453,
2.006116208,
1.021406728,
327
],
[
"72855",
2010,
5.25862069,
1.655172414,
0.8965517241,
58
],
[
"72855",
2011,
5.628787879,
2.227272727,
0.946969697,
132
],
[
"72855",
2012,
5.171052632,
1.934210526,
0.8092105263,
152
],
[
"72855",
2013,
5.352941176,
2.080213904,
1.048128342,
187
],
[
"72855",
2014,
5.29209622,
2.137457045,
1.054982818,
291
],
[
"72855",
2015,
5.556179775,
2.219101124,
1.075842697,
356
],
[
"72855",
2016,
5.068292683,
2.236585366,
1,
410
],
[
"77313",
2010,
6.357142857,
2.625,
1.205357143,
112
],
[
"77313",
2011,
5.228571429,
2.017142857,
0.8171428571,
175
],
[
"77313",
2012,
5.153409091,
1.778409091,
0.9034090909,
176
],
[
"77313",
2013,
6.043209877,
2.364197531,
1.240740741,
162
],
[
"77313",
2014,
5.775,
2.13,
0.975,
200
],
[
"77313",
2015,
5.558052434,
2.048689139,
1.029962547,
267
],
[
"77313",
2016,
5.347402597,
2.064935065,
1.00974026,
308
],
[
"83570",
2010,
5.962962963,
2.481481481,
1.064814815,
108
],
[
"83570",
2011,
5.803680982,
2.337423313,
1.067484663,
163
],
[
"83570",
2012,
4.953125,
1.973958333,
0.90625,
192
],
[
"83570",
2013,
5.565400844,
2.523206751,
1.092827004,
237
],
[
"83570",
2014,
5.201581028,
1.968379447,
0.8735177866,
253
],
[
"83570",
2015,
5.105263158,
1.990430622,
0.8947368421,
418
],
[
"83570",
2016,
5.398963731,
2.038860104,
0.9300518135,
386
],
[
"83572",
2010,
5.340659341,
1.967032967,
0.8626373626,
182
],
[
"83572",
2011,
6.557077626,
2.429223744,
1.123287671,
219
],
[
"83572",
2012,
5.870833333,
2.204166667,
1.091666667,
240
],
[
"83572",
2013,
5.854771784,
2.22406639,
1.062240664,
241
],
[
"83572",
2014,
5.861209964,
2.455516014,
1.056939502,
281
],
[
"83572",
2015,
5.695924765,
2.112852665,
0.9247648903,
319
],
[
"83572",
2016,
5.969325153,
2.355828221,
1.104294479,
326
],
[
"83806",
2010,
5.563492063,
2.380952381,
1.119047619,
126
],
[
"83806",
2011,
5.766497462,
2.370558376,
1.157360406,
197
],
[
"83806",
2012,
5.71484375,
2.47265625,
1.18359375,
256
],
[
"83806",
2013,
5.915178571,
2.379464286,
1.09375,
224
],
[
"83806",
2014,
5.70890411,
2.267123288,
1.02739726,
292
],
[
"83806",
2015,
5.204268293,
2.118902439,
0.9176829268,
328
],
[
"83806",
2016,
5.684085511,
2.201900238,
1.014251781,
421
],
[
"83959",
2010,
5.700361011,
2.090252708,
1.072202166,
277
],
[
"83959",
2011,
5.358333333,
1.944444444,
0.9305555556,
360
],
[
"83959",
2012,
5.324483776,
1.861356932,
0.8466076696,
339
],
[
"83959",
2013,
5.637873754,
2.136212625,
1.066445183,
301
],
[
"83959",
2014,
5.380191693,
2.102236422,
1.086261981,
313
],
[
"83959",
2015,
5.481012658,
1.977848101,
0.9082278481,
316
],
[
"83959",
2016,
5.546296296,
2.293209877,
1.00308642,
324
],
[
"84463",
2010,
6.7,
2.4,
1.191666667,
120
],
[
"84463",
2011,
5.34375,
2.026041667,
0.9427083333,
192
],
[
"84463",
2012,
5.324074074,
1.935185185,
0.8472222222,
216
],
[
"84463",
2013,
5.772727273,
2.297979798,
0.9545454545,
198
],
[
"84463",
2014,
6.229665072,
2.416267943,
1.033492823,
209
],
[
"84463",
2015,
5.336538462,
2.115384615,
0.9743589744,
312
],
[
"84463",
2016,
5.612582781,
2.052980132,
0.9668874172,
302
],
[
"87430",
2010,
5.454545455,
1.929292929,
0.8888888889,
99
],
[
"87430",
2011,
5.64375,
2.61875,
1.14375,
160
],
[
"87430",
2012,
6.633540373,
3.01242236,
1.51552795,
161
],
[
"87430",
2013,
5.590909091,
2.448051948,
1.136363636,
154
],
[
"87430",
2014,
5.607476636,
2.509345794,
1.014018692,
214
],
[
"87430",
2015,
5.012,
2.256,
1.016,
250
],
[
"87430",
2016,
5.680297398,
2.542750929,
1.208178439,
269
],
[
"92275",
2010,
5.117647059,
1.823529412,
0.9529411765,
170
],
[
"92275",
2011,
5.986363636,
2.440909091,
1.1,
220
],
[
"92275",
2012,
5.973214286,
2.419642857,
1.044642857,
224
],
[
"92275",
2013,
5.451492537,
2.608208955,
1.194029851,
268
],
[
"92275",
2014,
5.951851852,
2.288888889,
1.081481481,
270
],
[
"92275",
2015,
6.039393939,
2.515151515,
1.248484848,
330
],
[
"92275",
2016,
5.827906977,
2.33255814,
1.1,
430
],
[
"92890",
2010,
6.092198582,
2.758865248,
1.29787234,
141
],
[
"92890",
2011,
5.731428571,
2.36,
1.085714286,
175
],
[
"92890",
2012,
5.45505618,
2.264044944,
1.134831461,
178
],
[
"92890",
2013,
6.036866359,
2.576036866,
1.138248848,
217
],
[
"92890",
2014,
5.829192547,
2.413043478,
1.090062112,
322
],
[
"92890",
2015,
5.71627907,
2.655813953,
1.204651163,
215
],
[
"92890",
2016,
5.834862385,
2.229357798,
1.02293578,
218
],
[
"95504",
2010,
5.470588235,
1.889705882,
0.8529411765,
136
],
[
"95504",
2011,
5.369747899,
2.201680672,
1.029411765,
238
],
[
"95504",
2012,
5.468401487,
2.078066914,
1.07063197,
269
],
[
"95504",
2013,
5.552971576,
2.175710594,
1.015503876,
387
],
[
"95504",
2014,
5.77484787,
2.24137931,
1.093306288,
493
],
[
"95504",
2015,
5.470304976,
2.123595506,
1.001605136,
623
],
[
"95504",
2016,
5.422516556,
2.119205298,
1.055629139,
755
],
[
"97346",
2010,
5.260869565,
2.205797101,
0.8811594203,
345
],
[
"97346",
2011,
5.658371041,
2.122171946,
0.9592760181,
442
],
[
"97346",
2012,
5.536842105,
1.973684211,
0.9684210526,
380
],
[
"97346",
2013,
5.587078652,
2.036516854,
0.9185393258,
356
],
[
"97346",
2014,
5.553072626,
2.181564246,
1.008379888,
358
],
[
"97346",
2015,
5.2578125,
2.015625,
0.9427083333,
384
],
[
"97346",
2016,
5.528089888,
2.095505618,
0.9747191011,
356
],
[
"98408",
2010,
5.738255034,
2.268456376,
1.023489933,
298
],
[
"98408",
2011,
5.720136519,
2.296928328,
1.088737201,
293
],
[
"98408",
2012,
5.546153846,
2.453846154,
1.192307692,
260
],
[
"98408",
2013,
5.791519435,
2.371024735,
1.091872792,
283
],
[
"98408",
2014,
5.394736842,
2.154605263,
1.019736842,
304
],
[
"98408",
2015,
5.174796748,
2.012195122,
1.028455285,
246
],
[
"98408",
2016,
6.067708333,
2.317708333,
1.114583333,
192
],
[
"98922",
2010,
6.898734177,
3.063291139,
1.329113924,
79
],
[
"98922",
2011,
6.323741007,
2.884892086,
1.244604317,
139
],
[
"98922",
2012,
6.132075472,
2.06918239,
0.9119496855,
159
],
[
"98922",
2013,
6.281767956,
2.519337017,
1.132596685,
181
],
[
"98922",
2014,
6.281879195,
2.295302013,
1.043624161,
298
],
[
"98922",
2015,
5.81938326,
2.40969163,
1.145374449,
227
],
[
"98922",
2016,
6.227979275,
2.875647668,
1.196891192,
193
],
[
"99647",
2010,
5.542372881,
2.220338983,
1.101694915,
118
],
[
"99647",
2011,
5.362694301,
2.10880829,
1.03626943,
193
],
[
"99647",
2012,
5.492227979,
2.466321244,
1.041450777,
193
],
[
"99647",
2013,
5.984771574,
2.634517766,
1.137055838,
197
],
[
"99647",
2014,
5.669039146,
2.352313167,
1.113879004,
281
],
[
"99647",
2015,
5.792022792,
2.398860399,
1.11965812,
351
],
[
"99647",
2016,
5.844444444,
2.614814815,
1.214814815,
405
],
[
"100333",
2010,
5.693181818,
2.261363636,
1.102272727,
176
],
[
"100333",
2011,
5.355140187,
2.331775701,
1.140186916,
214
],
[
"100333",
2012,
5.171875,
2.098958333,
1.046875,
192
],
[
"100333",
2013,
5.427906977,
2.251162791,
1.088372093,
215
],
[
"100333",
2014,
5.449781659,
2.109170306,
1.052401747,
229
],
[
"100333",
2015,
5.658273381,
2.107913669,
1.082733813,
278
],
[
"100333",
2016,
5.543859649,
2.196491228,
1.003508772,
285
],
[
"100429",
2010,
5.432835821,
2.019900498,
0.9751243781,
201
],
[
"100429",
2011,
5.421875,
2.276041667,
1.036458333,
192
],
[
"100429",
2012,
5.406542056,
2.299065421,
1.060747664,
214
],
[
"100429",
2013,
5.632183908,
2.08045977,
0.9310344828,
174
],
[
"100429",
2014,
6.220994475,
2.635359116,
1.298342541,
181
],
[
"100429",
2015,
5.98245614,
2.432748538,
1.245614035,
171
],
[
"100429",
2016,
5.513089005,
2.19895288,
0.9947643979,
191
],
[
"101688",
2010,
6.419354839,
2.564516129,
1.209677419,
62
],
[
"101688",
2011,
4.860655738,
2.18852459,
0.8196721311,
122
],
[
"101688",
2012,
5.992481203,
2.857142857,
1.338345865,
133
],
[
"101688",
2013,
5.277777778,
1.936507937,
0.9603174603,
126
],
[
"101688",
2014,
5.528571429,
2.464285714,
1.132142857,
280
],
[
"101688",
2015,
5.573333333,
2.322222222,
1.055555556,
450
],
[
"101688",
2016,
5.741741742,
2.372372372,
1.132132132,
666
],
[
"103521",
2010,
5.766497462,
2.299492386,
0.9492385787,
197
],
[
"103521",
2011,
5.654731458,
2.322250639,
0.9616368286,
782
],
[
"103521",
2012,
5.481636936,
2.310598111,
0.9895068206,
953
],
[
"103521",
2013,
5.446453408,
2.244784423,
0.9248956885,
719
],
[
"103521",
2014,
5.415915916,
2.312312312,
0.9564564565,
666
],
[
"103521",
2015,
5.347826087,
2.246376812,
0.9291465378,
621
],
[
"103521",
2016,
5.357446809,
2.35106383,
0.9382978723,
470
],
[
"105260",
2010,
6.092592593,
1.975308642,
0.9567901235,
162
],
[
"105260",
2011,
5.587064677,
2.084577114,
1.009950249,
201
],
[
"105260",
2012,
5.475,
1.92,
0.9,
200
],
[
"105260",
2013,
5.238095238,
1.985714286,
0.9095238095,
210
],
[
"105260",
2014,
5.561264822,
2.193675889,
0.8932806324,
253
],
[
"105260",
2015,
5.325358852,
2.019138756,
0.95215311,
209
],
[
"105260",
2016,
5.330645161,
1.947580645,
0.8709677419,
248
],
[
"105930",
2010,
5.743396226,
2.154716981,
1.079245283,
265
],
[
"105930",
2011,
5.506261181,
2.166368515,
1.017889088,
559
],
[
"105930",
2012,
5.712141883,
2.175989086,
0.9986357435,
733
],
[
"105930",
2013,
5.721034871,
2.428571429,
1.061867267,
889
],
[
"105930",
2014,
5.602620087,
2.158078603,
1.006113537,
1145
],
[
"105930",
2015,
5.476102941,
2.207720588,
1.045955882,
1088
],
[
"105930",
2016,
5.517906336,
2.195592287,
1.034894399,
1089
],
[
"108508",
2010,
5.609375,
2.0625,
0.890625,
64
],
[
"108508",
2011,
5.102803738,
1.953271028,
0.8878504673,
107
],
[
"108508",
2012,
5.713178295,
2.395348837,
1.031007752,
129
],
[
"108508",
2013,
5.41958042,
2.300699301,
1.041958042,
143
],
[
"108508",
2014,
5.372972973,
2.140540541,
1.032432432,
185
],
[
"108508",
2015,
5.522633745,
2.057613169,
1.012345679,
243
],
[
"108508",
2016,
5.475609756,
1.914634146,
0.887195122,
328
],
[
"112447",
2010,
5.666666667,
2.186666667,
1.093333333,
75
],
[
"112447",
2011,
6.254716981,
2.188679245,
1.009433962,
106
],
[
"112447",
2012,
5.771812081,
2.134228188,
1,
149
],
[
"112447",
2013,
5.398496241,
1.92481203,
0.954887218,
133
],
[
"112447",
2014,
5.917159763,
2.224852071,
0.9881656805,
169
],
[
"112447",
2015,
5.316964286,
2.09375,
1.142857143,
224
],
[
"112447",
2016,
5.384615385,
2.5,
1.153846154,
286
],
[
"121126",
2010,
5.501510574,
2.135951662,
0.996978852,
331
],
[
"121126",
2011,
5.524553571,
2.033482143,
0.9330357143,
448
],
[
"121126",
2012,
5.521158129,
2.100222717,
0.9064587973,
449
],
[
"121126",
2013,
5.375776398,
2.037267081,
0.9906832298,
322
],
[
"121126",
2014,
5.735849057,
2.191823899,
0.9874213836,
318
],
[
"121126",
2015,
5.724220624,
2.273381295,
1.127098321,
417
],
[
"121126",
2016,
5.668662675,
2.18762475,
0.9620758483,
501
],
[
"125244",
2010,
5.735849057,
2.660377358,
1.283018868,
159
],
[
"125244",
2011,
5.30877193,
2.421052632,
1.063157895,
285
],
[
"125244",
2012,
5.65,
2.8,
1.33,
200
],
[
"125244",
2013,
5.119047619,
2.398809524,
1.053571429,
168
],
[
"125244",
2014,
5.339181287,
2.30994152,
1.040935673,
171
],
[
"125244",
2015,
5.455128205,
2.455128205,
1.019230769,
156
],
[
"125244",
2016,
5.559440559,
2.468531469,
1.076923077,
143
],
[
"130461",
2010,
6.177777778,
1.977777778,
0.9222222222,
90
],
[
"130461",
2011,
6.162561576,
2.15270936,
0.9950738916,
203
],
[
"130461",
2012,
5.980769231,
2.342307692,
1.080769231,
260
],
[
"130461",
2013,
5.627906977,
2.147286822,
1.058139535,
258
],
[
"130461",
2014,
5.526315789,
2.110803324,
1.072022161,
361
],
[
"130461",
2015,
5.34,
2.066,
1.044,
500
],
[
"130461",
2016,
5.692963753,
2.287846482,
1.12793177,
469
],
[
"132558",
2010,
5.545454545,
1.974025974,
1.025974026,
77
],
[
"132558",
2011,
5.596491228,
2.096491228,
0.9298245614,
114
],
[
"132558",
2012,
5.213793103,
2.303448276,
1.124137931,
145
],
[
"132558",
2013,
5.269736842,
1.888157895,
0.9276315789,
152
],
[
"132558",
2014,
5.25,
2.392857143,
1.154761905,
252
],
[
"132558",
2015,
5.292576419,
2.23580786,
0.9301310044,
229
],
[
"132558",
2016,
5.419117647,
1.790441176,
0.7977941176,
272
],
[
"137220",
2010,
4.615384615,
2.221153846,
1.115384615,
104
],
[
"137220",
2011,
6,
2.481481481,
1.106481481,
216
],
[
"137220",
2012,
5.769585253,
2.368663594,
1.055299539,
217
],
[
"137220",
2013,
5.942731278,
2.339207048,
1.136563877,
227
],
[
"137220",
2014,
5.365535248,
2.216710183,
1.044386423,
383
],
[
"137220",
2015,
5.851758794,
2.381909548,
1.060301508,
398
],
[
"137220",
2016,
5.263414634,
2.119512195,
0.9536585366,
410
],
[
"138704",
2010,
5.566820276,
2.373271889,
1.036866359,
217
],
[
"138704",
2011,
5.5,
2.024,
0.96,
250
],
[
"138704",
2012,
5.350282486,
2.209039548,
1.011299435,
177
],
[
"138704",
2013,
5.782051282,
2.188034188,
0.9871794872,
234
],
[
"138704",
2014,
5.52,
2.128,
0.948,
250
],
[
"138704",
2015,
5.233333333,
1.991666667,
0.9916666667,
240
],
[
"138704",
2016,
5.781725888,
2.497461929,
1.040609137,
197
],
[
"140981",
2010,
6.458333333,
1.729166667,
0.8333333333,
48
],
[
"140981",
2011,
5.691489362,
1.925531915,
0.8936170213,
94
],
[
"140981",
2012,
6.194174757,
2.45631068,
1.223300971,
103
],
[
"140981",
2013,
5.85046729,
2.700934579,
1.037383178,
107
],
[
"140981",
2014,
5.519553073,
2.005586592,
0.9720670391,
179
],
[
"140981",
2015,
5.618518519,
1.97037037,
0.9703703704,
270
],
[
"140981",
2016,
5.423300971,
2.05631068,
0.9106796117,
515
],
[
"143166",
2010,
6.144067797,
2.559322034,
1.330508475,
118
],
[
"143166",
2011,
5.685714286,
2.092857143,
0.9857142857,
140
],
[
"143166",
2012,
5.236220472,
2.220472441,
0.937007874,
127
],
[
"143166",
2013,
6.3,
2.284615385,
1.053846154,
130
],
[
"143166",
2014,
5.56875,
1.975,
0.9,
160
],
[
"143166",
2015,
5.779116466,
2.236947791,
1.136546185,
249
],
[
"143166",
2016,
6.009202454,
2.328220859,
1.061349693,
326
],
[
"144117",
2010,
5.882352941,
2.752941176,
1.2,
85
],
[
"144117",
2011,
5.578212291,
2.223463687,
1.089385475,
358
],
[
"144117",
2012,
5.69279661,
2.222457627,
0.9936440678,
472
],
[
"144117",
2013,
6.152230971,
2.17847769,
0.9238845144,
381
],
[
"144117",
2014,
5.873786408,
2.111650485,
0.9878640777,
412
],
[
"144117",
2015,
5.826330532,
2.207282913,
0.9215686275,
357
],
[
"144117",
2016,
5.563968668,
2.274151436,
1.028720627,
383
],
[
"146409",
2010,
5,
2.033333333,
1,
60
],
[
"146409",
2011,
5.564102564,
2.051282051,
0.9487179487,
78
],
[
"146409",
2012,
5.626984127,
1.896825397,
0.8888888889,
126
],
[
"146409",
2013,
5.992481203,
2.263157895,
1.195488722,
133
],
[
"146409",
2014,
5.572115385,
2.25,
1.091346154,
208
],
[
"146409",
2015,
5.677749361,
2.265984655,
1.010230179,
391
],
[
"146409",
2016,
5.851612903,
2.090322581,
0.9838709677,
310
],
[
"146927",
2010,
6.625,
2.65625,
1.2421875,
128
],
[
"146927",
2011,
6.360215054,
2.408602151,
1.220430108,
186
],
[
"146927",
2012,
6.212121212,
2.290909091,
1.090909091,
165
],
[
"146927",
2013,
7.11038961,
2.707792208,
1.311688312,
154
],
[
"146927",
2014,
6.154867257,
2.261061947,
1.057522124,
226
],
[
"146927",
2015,
7.450292398,
2.906432749,
1.415204678,
171
],
[
"146927",
2016,
6.530172414,
2.379310345,
1.120689655,
232
],
[
"147900",
2010,
5.554545455,
1.709090909,
0.8181818182,
110
],
[
"147900",
2011,
5.091603053,
1.992366412,
0.9541984733,
131
],
[
"147900",
2012,
4.994318182,
2.022727273,
0.9545454545,
176
],
[
"147900",
2013,
5.358381503,
1.930635838,
0.9248554913,
173
],
[
"147900",
2014,
5.018181818,
1.904545455,
0.8363636364,
220
],
[
"147900",
2015,
5.348547718,
2.029045643,
0.9585062241,
241
],
[
"147900",
2016,
4.724409449,
1.779527559,
0.8267716535,
254
],
[
"148347",
2010,
5.475308642,
2.125514403,
1.080246914,
486
],
[
"148347",
2011,
5.693156733,
2.035320088,
0.9315673289,
453
],
[
"148347",
2012,
5.752840909,
2.258522727,
1.102272727,
352
],
[
"148347",
2013,
5.755474453,
2.259124088,
1.051094891,
274
],
[
"148347",
2014,
5.574468085,
2.085106383,
0.9574468085,
282
],
[
"148347",
2015,
5.993589744,
2.243589744,
1.144230769,
312
],
[
"148347",
2016,
5.738709677,
2.209677419,
0.9935483871,
310
],
[
"149575",
2010,
5.20855615,
1.957219251,
0.8449197861,
187
],
[
"149575",
2011,
5.457534247,
2.106849315,
0.9369863014,
365
],
[
"149575",
2012,
5.345047923,
2.137380192,
1,
313
],
[
"149575",
2013,
5.541284404,
2.21559633,
0.9678899083,
218
],
[
"149575",
2014,
6.282828283,
2.570707071,
1.075757576,
198
],
[
"149575",
2015,
5.310160428,
2.20855615,
1.048128342,
187
],
[
"149575",
2016,
5.371428571,
2.080952381,
0.9619047619,
210
],
[
"151711",
2010,
5.132947977,
2.057803468,
0.9884393064,
173
],
[
"151711",
2011,
5.607655502,
2.358851675,
1.200956938,
209
],
[
"151711",
2012,
5.586206897,
2.157635468,
0.9064039409,
203
],
[
"151711",
2013,
5.25,
1.927272727,
0.8363636364,
220
],
[
"151711",
2014,
5.049019608,
2.078431373,
0.8480392157,
204
],
[
"151711",
2015,
5.700564972,
2.401129944,
0.9943502825,
177
],
[
"151711",
2016,
5.112426036,
2.159763314,
1,
169
],
[
"151741",
2010,
5.518518519,
2.361111111,
1.157407407,
108
],
[
"151741",
2011,
5.271676301,
2.294797688,
1.040462428,
173
],
[
"151741",
2012,
5.559090909,
2.590909091,
1.213636364,
220
],
[
"151741",
2013,
5.82464455,
2.118483412,
1.028436019,
211
],
[
"151741",
2014,
5.191419142,
1.891089109,
0.9537953795,
303
],
[
"151741",
2015,
5.4,
2.207317073,
1.119512195,
410
],
[
"151741",
2016,
5.614754098,
2.217213115,
1.05942623,
488
],
[
"155673",
2010,
5.783333333,
2.283333333,
1.01,
300
],
[
"155673",
2011,
5.583333333,
2.135057471,
0.9770114943,
348
],
[
"155673",
2012,
5.835714286,
2.453571429,
1.235714286,
280
],
[
"155673",
2013,
5.602564103,
2.371794872,
1.057692308,
156
],
[
"155673",
2014,
5.851851852,
2.259259259,
1.046296296,
108
],
[
"155673",
2015,
5.815602837,
2.382978723,
1.063829787,
141
],
[
"155673",
2016,
6.051724138,
2.732758621,
1.189655172,
116
] 
];
data.addColumn('string','bid');
data.addColumn('number','year');
data.addColumn('number','positive');
data.addColumn('number','negative');
data.addColumn('number','sad');
data.addColumn('number','n');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartID1d6c1b77456() {
var data = gvisDataMotionChartID1d6c1b77456();
var options = {};
options["width"] = 600;
options["height"] = 500;
options["state"] = "";

    var chart = new google.visualization.MotionChart(
    document.getElementById('MotionChartID1d6c1b77456')
    );
    chart.draw(data,options);
    

}
  
 
// jsDisplayChart
(function() {
var pkgs = window.__gvisPackages = window.__gvisPackages || [];
var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
var chartid = "motionchart";
  
// Manually see if chartid is in pkgs (not all browsers support Array.indexOf)
var i, newPackage = true;
for (i = 0; newPackage && i < pkgs.length; i++) {
if (pkgs[i] === chartid)
newPackage = false;
}
if (newPackage)
  pkgs.push(chartid);
  
// Add the drawChart function to the global list of callbacks
callbacks.push(drawChartMotionChartID1d6c1b77456);
})();
function displayChartMotionChartID1d6c1b77456() {
  var pkgs = window.__gvisPackages = window.__gvisPackages || [];
  var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
  window.clearTimeout(window.__gvisLoad);
  // The timeout is set to 100 because otherwise the container div we are
  // targeting might not be part of the document yet
  window.__gvisLoad = setTimeout(function() {
  var pkgCount = pkgs.length;
  google.load("visualization", "1", { packages:pkgs, callback: function() {
  if (pkgCount != pkgs.length) {
  // Race condition where another setTimeout call snuck in after us; if
  // that call added a package, we must not shift its callback
  return;
}
while (callbacks.length > 0)
callbacks.shift()();
} });
}, 100);
}
 
// jsFooter
</script>
 
<!-- jsChart -->  
<script type="text/javascript" src="https://www.google.com/jsapi?callback=displayChartMotionChartID1d6c1b77456"></script>
 
<!-- divChart -->
  
<div id="MotionChartID1d6c1b77456" 
  style="width: 600; height: 500;">
</div>


(2) 商業類別的動態比較

2.1 依商業類別彙總評論資料
load(paste0(prep2, "cat822.rdata"))
選定商業類別
select1 = c("Fitness & Instruction","fitness","Aerial Fitness","Barre Classes","Boot Camps","Boxing","Cardio Classes","Dance Studios","Golf Lessons","Gyms","Circuit Training Gyms","Interval Training Gyms","Martial Arts","Brazilian Jiu-jitsu","Chinese Martial Arts","Karate","Kickboxing","Muay Thai","Taekwondo","Meditation Centers","Pilates" ,"Qi Gong" ,"Self-defense Classes" , "Swimming Lessons/Schools" , "Tai Chi","Trainers","Yoga")
select2 = select1[select1 %in% X@Dimnames[[2]]]
整理出屬於fitness & intruction類別(包含底下子類別)的所有商店
select1 %in% X@Dimnames[[2]]
 [1]  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE
[17]  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
aa = B$bid[(rowSums(X[,select2]) > 0)]
Fitness <- subset(B,bid %in% aa)
Fitness <- merge(Fitness,bizatt,by = "bid")
head(Fitness)
  bid                            address            business_id       city is_open latitude
1  21    7060 W Warm Springs Rd, Ste 170 C8-Y-b6GA11afcixfC9Dwg  Las Vegas    TRUE    36.06
2  34     14415 N Scottsdale Rd, Ste 600 WjYI4EbY_mshEKPMJg7jpA Scottsdale    TRUE    33.61
3 149                   1011 N Gammon Rd fvtpeQt4Oj3a5snE2UDF4g  Middleton    TRUE    43.08
4 233              555 College Dr, Ste B vhgdZJLMR1a_4zkAk1GD2Q  Henderson    TRUE    36.01
5 364       7750 E Redfield Rd, Ste D102 2vOh_VdWErcmuPJNHCHxoQ Scottsdale    TRUE    33.61
6 395 2790 W Horizon Ridge Pkwy, Ste 120 qvheARnCPSrb_UaAELV4jw  Henderson    TRUE    36.00
  longitude                           name neighborhood postal_code review_count stars state
1    -115.2     Crossfit Culmination South    Southwest       89113           13   5.0    NV
2    -111.9                    Pilates Joe         <NA>       85260            5   4.5    AZ
3     -89.5                Anytime Fitness         <NA>       53562            5   4.0    WI
4    -115.0 Cox and Gallacher Martial Arts         <NA>       89015            4   5.0    NV
5    -111.9       Reality Defense Training         <NA>       85260            7   5.0    AZ
6    -115.1              Bodies by Pilates       Anthem       89052            5   5.0    NV
  AcceptsInsurance AgesAllowed Alcohol BYOB BYOBCorkage BikeParking BusinessAcceptsBitcoin
1               NA        <NA>    <NA>   NA        <NA>        TRUE                  FALSE
2               NA        <NA>    <NA>   NA        <NA>        TRUE                     NA
3               NA        <NA>    <NA>   NA        <NA>          NA                     NA
4               NA        <NA>    <NA>   NA        <NA>          NA                     NA
5               NA        <NA>    <NA>   NA        <NA>          NA                     NA
6               NA        <NA>    <NA>   NA        <NA>          NA                     NA
  BusinessAcceptsCreditCards ByAppointmentOnly Caters CoatCheck Corkage DogsAllowed DriveThru
1                       TRUE             FALSE     NA        NA      NA       FALSE        NA
2                       TRUE              TRUE     NA        NA      NA          NA        NA
3                         NA                NA     NA        NA      NA          NA        NA
4                       TRUE                NA     NA        NA      NA          NA        NA
5                       TRUE                NA     NA        NA      NA          NA        NA
6                       TRUE              TRUE     NA        NA      NA          NA        NA
  GoodForDancing GoodForKids HappyHour HasTV NoiseLevel Open24Hours OutdoorSeating
1             NA        TRUE        NA    NA       <NA>          NA             NA
2             NA       FALSE        NA    NA       <NA>          NA             NA
3             NA       FALSE        NA    NA       <NA>          NA             NA
4             NA        TRUE        NA    NA       <NA>          NA             NA
5             NA        TRUE        NA    NA       <NA>          NA             NA
6             NA       FALSE        NA    NA       <NA>          NA             NA
  RestaurantsAttire RestaurantsCounterService RestaurantsDelivery RestaurantsGoodForGroups
1              <NA>                        NA                  NA                       NA
2              <NA>                        NA                  NA                       NA
3              <NA>                        NA                  NA                       NA
4              <NA>                        NA                  NA                       NA
5              <NA>                        NA                  NA                       NA
6              <NA>                        NA                  NA                       NA
  RestaurantsPriceRange2 RestaurantsReservations RestaurantsTableService RestaurantsTakeOut Smoking
1                      1                      NA                      NA                 NA    <NA>
2                     NA                      NA                      NA                 NA    <NA>
3                     NA                      NA                      NA                 NA    <NA>
4                     NA                      NA                      NA                 NA    <NA>
5                     NA                      NA                      NA                 NA    <NA>
6                     NA                      NA                      NA                 NA    <NA>
  WheelchairAccessible WiFi casual classy divey hipster intimate romantic touristy trendy upscale
1                 TRUE <NA>     NA     NA    NA      NA       NA       NA       NA     NA      NA
2                FALSE <NA>     NA     NA    NA      NA       NA       NA       NA     NA      NA
3                   NA <NA>     NA     NA    NA      NA       NA       NA       NA     NA      NA
4                   NA <NA>     NA     NA    NA      NA       NA       NA       NA     NA      NA
5                   NA <NA>     NA     NA    NA      NA       NA       NA       NA     NA      NA
6                   NA <NA>     NA     NA    NA      NA       NA       NA       NA     NA      NA
  friday monday saturday sunday thursday tuesday wednesday garage   lot street valet validated
1     NA     NA       NA     NA       NA      NA        NA  FALSE  TRUE  FALSE FALSE     FALSE
2     NA     NA       NA     NA       NA      NA        NA     NA    NA     NA    NA        NA
3     NA     NA       NA     NA       NA      NA        NA     NA    NA     NA    NA        NA
4     NA     NA       NA     NA       NA      NA        NA  FALSE FALSE  FALSE FALSE     FALSE
5     NA     NA       NA     NA       NA      NA        NA  FALSE FALSE  FALSE FALSE     FALSE
6     NA     NA       NA     NA       NA      NA        NA     NA    NA     NA    NA        NA
  dairy-free gluten-free halal kosher soy-free vegan vegetarian breakfast brunch dessert dinner
1         NA          NA    NA     NA       NA    NA         NA        NA     NA      NA     NA
2         NA          NA    NA     NA       NA    NA         NA        NA     NA      NA     NA
3         NA          NA    NA     NA       NA    NA         NA        NA     NA      NA     NA
4         NA          NA    NA     NA       NA    NA         NA        NA     NA      NA     NA
5         NA          NA    NA     NA       NA    NA         NA        NA     NA      NA     NA
6         NA          NA    NA     NA       NA    NA         NA        NA     NA      NA     NA
  latenight lunch africanamerican asian coloring curly extensions kids perms straightperms
1        NA    NA              NA    NA       NA    NA         NA   NA    NA            NA
2        NA    NA              NA    NA       NA    NA         NA   NA    NA            NA
3        NA    NA              NA    NA       NA    NA         NA   NA    NA            NA
4        NA    NA              NA    NA       NA    NA         NA   NA    NA            NA
5        NA    NA              NA    NA       NA    NA         NA   NA    NA            NA
6        NA    NA              NA    NA       NA    NA         NA   NA    NA            NA
  background_music dj jukebox karaoke live no_music video
1               NA NA      NA      NA   NA       NA    NA
2               NA NA      NA      NA   NA       NA    NA
3               NA NA      NA      NA   NA       NA    NA
4               NA NA      NA      NA   NA       NA    NA
5               NA NA      NA      NA   NA       NA    NA
6               NA NA      NA      NA   NA       NA    NA
fitness & intruction商業類別的探索
#先刪除太多NA的欄位
Fitness <- Fitness[ lapply( Fitness, function(x) (sum(is.na(x)) / length(x) )) < 0.2 ]
#發現刪除了來自B dataframe的neighbor,bizatt只有剩下GoodforKids

summary(Fitness)
      bid           address          business_id            city            is_open       
 Min.   :    21   Length:3615        Length:3615        Length:3615        Mode :logical  
 1st Qu.: 39057   Class :character   Class :character   Class :character   FALSE:576      
 Median : 79093   Mode  :character   Mode  :character   Mode  :character   TRUE :3039     
 Mean   : 78687                                                                           
 3rd Qu.:117394                                                                           
 Max.   :156619                                                                           
    latitude      longitude           name           postal_code         review_count  
 Min.   :33.2   Min.   :-115.42   Length:3615        Length:3615        Min.   :  3.0  
 1st Qu.:33.6   1st Qu.:-112.13   Class :character   Class :character   1st Qu.:  4.0  
 Median :36.1   Median :-111.84   Mode  :character   Mode  :character   Median :  7.0  
 Mean   :37.6   Mean   : -97.05                                         Mean   : 13.8  
 3rd Qu.:41.5   3rd Qu.: -80.06                                         3rd Qu.: 15.0  
 Max.   :56.0   Max.   :   9.28                                         Max.   :444.0  
     stars        state           GoodForKids    
 Min.   :1.0   Length:3615        Mode :logical  
 1st Qu.:3.5   Class :character   FALSE:1263     
 Median :4.5   Mode  :character   TRUE :1807     
 Mean   :4.2                      NA's :545      
 3rd Qu.:5.0                                     
 Max.   :5.0                                     
2.2 比較討論聲量相似的商業類別
select1 = c("Aerial Fitness","Barre Classes","Boot Camps","Boxing","Cardio Classes","Dance Studios","Golf Lessons","Gyms","Circuit Training Gyms","Interval Training Gyms","Martial Arts","Brazilian Jiu-jitsu","Chinese Martial Arts","Karate","Kickboxing","Muay Thai","Taekwondo","Meditation Centers","Pilates" ,"Qi Gong" ,"Self-defense Classes" , "Swimming Lessons/Schools" , "Tai Chi","Trainers","Yoga")
df = cat822 %>% 
  filter(year >= 2010) %>%
  filter(category %in% select1) %>%
  dplyr::select(category, year, negative, stars, useful, n,
         positive, joy, anticipation, trust, surprise,
         sadness, anger, disgust, fear, cool, funny
         )  %>% 
  
  mutate_at(c(3:5,7:17), scale) %>%       #   除了數量,其餘皆做標準化
  data.frame 

p = gvisMotionChart(df, "category", "year")
plot(p)
<!-- MotionChart generated in R 3.5.1 by googleVis 0.6.2 package -->
<!-- Fri Aug 31 15:34:43 2018 -->


<!-- jsHeader -->
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartID1d6c3f8d7a5b () {
var data = new google.visualization.DataTable();
var datajson =
[
 [
"Gyms",
2010,
-0.397918256,
-0.1759733651,
1.370582628,
2052,
-0.1866427817,
-0.08901669603,
-0.1419199894,
-0.2173372774,
-0.5772485607,
-0.1032069897,
-0.3050538136,
-0.515330511,
-0.5162630648,
1.777179325,
1.850772361
],
[
"Gyms",
2011,
-0.2182076867,
-0.6434779203,
0.7533546621,
3152,
0.009080710578,
-0.0428232346,
0.2998490717,
-0.06703115047,
0.4364290216,
-0.1223939073,
0.004515163846,
0.0202889435,
0.0977164912,
0.5677462283,
0.5659470024
],
[
"Gyms",
2012,
-0.2413694871,
-0.7064192865,
0.6189441971,
3929,
-0.5089761078,
-0.6766686264,
-0.3042127227,
-0.6258106798,
-0.491579139,
-0.156673123,
0.02692190881,
-0.1502372051,
0.1320052564,
0.09687013795,
0.2324449795
],
[
"Gyms",
2013,
-0.1273469073,
-0.4936153084,
0.5604491815,
4892,
-0.1038526838,
-0.3507345231,
-0.04846832463,
-0.1453322526,
-0.1181867553,
-0.02597090882,
0.04739767664,
0.05429883415,
-0.005794966993,
0.3095464354,
0.3132579866
],
[
"Gyms",
2014,
-0.2539249707,
-0.1991808965,
0.07327319542,
6879,
0.01372377244,
-0.07913119511,
0.1493771672,
-0.06992897378,
0.0385702865,
-0.1258855789,
-0.07925044376,
-0.1593681666,
-0.08582990168,
-0.3368123624,
-0.2792674058
],
[
"Gyms",
2015,
-0.02013989569,
0.0105643944,
-0.08411852459,
9608,
0.05362178507,
-0.09615612145,
0.07651544462,
0.04431845481,
0.004359449455,
0.03496073904,
-0.1234525818,
-0.1317021078,
-0.04724306648,
-0.2802778422,
-0.1584344269
],
[
"Gyms",
2016,
-0.1861370278,
-0.04559968654,
-0.5042190385,
11015,
-0.1547792332,
-0.1885936972,
0.0527558349,
-0.1413512674,
-0.08749144233,
-0.2125534841,
-0.08949747104,
-0.2188970454,
-0.03914122445,
-0.3879158956,
-0.5296991171
],
[
"Gyms",
2017,
-0.2772507724,
0.2892036918,
-1.222737762,
6931,
-0.1114268347,
-0.263870225,
-0.08396700327,
-0.3167848247,
-0.1713966935,
-0.178095063,
-0.2359116607,
-0.2412637238,
-0.06743622163,
-0.8198713778,
-1.046164941
],
[
"Trainers",
2010,
-0.4861970367,
-0.2073411938,
1.42860209,
1821,
-0.2525552792,
-0.08723543557,
-0.1581523434,
-0.3315654447,
-0.7276900125,
-0.1664864269,
-0.3272786919,
-0.6857726778,
-0.4907448647,
2.043701877,
1.969410683
],
[
"Trainers",
2011,
0.1353772918,
-0.5389619441,
0.7160367041,
2776,
-0.08102149434,
-0.1371446003,
0.4072143052,
-0.03841082349,
0.4376038483,
-0.01413402012,
0.1665749406,
0.2532552922,
0.2225469928,
0.6674557109,
0.5847184593
],
[
"Trainers",
2012,
-0.1170884037,
-0.6241340089,
0.5295903018,
3391,
-0.4349599891,
-0.6442526733,
-0.1152432627,
-0.5979693486,
-0.2655500028,
-0.04537496731,
0.04611606208,
-0.0842390796,
0.164913386,
0.1297911472,
0.3899524092
],
[
"Trainers",
2013,
-0.2621050424,
-0.5051752107,
0.7088888331,
4293,
-0.1258710615,
-0.5345173028,
-0.1568001407,
-0.311089811,
-0.2178146389,
-0.02161672882,
-0.1208500953,
-0.03134548485,
-0.08702086561,
0.5116339174,
0.659525786
],
[
"Trainers",
2014,
-0.1594890749,
-0.252353431,
-0.003590769929,
6198,
-0.009218805999,
-0.144477081,
0.2058542581,
-0.06160457157,
0.06852965109,
0.02296809003,
0.07381747302,
-0.03080762674,
0.07476739248,
-0.371761981,
-0.2010541677
],
[
"Trainers",
2015,
0.04164241587,
-0.3336931505,
0.00893176571,
8486,
0.06720006025,
-0.1358989721,
0.08542594388,
0.07087818669,
0.1402162556,
0.1093900948,
-0.1432648312,
0.003961217994,
-0.008407430469,
-0.2741777179,
-0.04832344341
],
[
"Trainers",
2016,
-0.08610005596,
-0.09813639876,
-0.395505589,
9807,
-0.1453523363,
-0.2213171057,
-0.04782974499,
-0.08998488504,
-0.2476958272,
-0.1740237727,
0.008075142796,
-0.003269698467,
0.02267206924,
-0.2729474368,
-0.3961444171
],
[
"Trainers",
2017,
-0.2027703869,
0.4339517534,
-1.232814168,
5970,
-0.01652784829,
-0.2638052173,
0.007422919559,
-0.1730981056,
-0.3566979677,
-0.1577510422,
-0.1747449485,
-0.1355920229,
-0.08582362297,
-0.7426128531,
-0.9643494326
],
[
"Yoga",
2010,
-0.1474287437,
-0.2077563573,
0.5894604269,
2082,
-0.1651233978,
-0.3770327158,
-0.2669006206,
-0.293343372,
-0.4090345027,
-0.001013006843,
-0.0986596839,
-0.09837681716,
0.1348211823,
1.093315181,
1.239721835
],
[
"Yoga",
2011,
0.008327354417,
-0.4964696822,
0.2702626657,
2744,
-0.1747899011,
-0.3571819446,
0.03621539291,
-0.3909848807,
-0.1208277444,
-0.1333795779,
0.07783045959,
-0.02244835642,
0.1936972219,
0.3320141325,
0.6450764339
],
[
"Yoga",
2012,
-0.6695309205,
-0.604277023,
0.5128077403,
3334,
-0.5594513847,
-0.7492797103,
-0.3391240864,
-0.5317065535,
-0.5942071244,
-0.4596060741,
-0.3915262298,
-0.5198767303,
-0.1896606144,
0.3504822158,
0.6719094383
],
[
"Yoga",
2013,
-0.04482764265,
-0.4551135597,
0.08918983209,
4109,
-0.07479999817,
-0.298500755,
-0.007023245116,
-0.005743337559,
-0.1549946635,
0.1686284773,
0.06992614301,
0.1185682054,
0.05399181888,
-0.1050970762,
0.09589945522
],
[
"Yoga",
2014,
0.2715870471,
-0.6080441905,
-0.1641987845,
5291,
0.05794470425,
-0.1239102091,
0.1416993062,
-0.001403523727,
0.08947593034,
0.2539401674,
0.09324399181,
0.3831099103,
0.2747377398,
-0.2889829813,
-0.001753408445
],
[
"Yoga",
2015,
0.1775238734,
-0.3473387323,
-0.2978655276,
6827,
-0.193514965,
-0.463177979,
-0.07757969661,
-0.2672850268,
-0.2244379059,
0.1179579827,
0.0393535771,
0.03274025464,
0.06671767165,
-0.3791669344,
-0.248151883
],
[
"Yoga",
2016,
0.1297188424,
-0.4525185725,
-0.4946541881,
7902,
0.0551587998,
-0.2237693352,
0.03021990248,
-0.09496824755,
-0.05142358896,
0.06699769361,
0.07023448077,
0.3019387737,
0.06035553029,
-0.3174655724,
-0.4448636329
],
[
"Yoga",
2017,
0.01789644848,
-0.06305408628,
-1.303326305,
4712,
0.1785936108,
-0.07948691444,
0.2299322856,
-0.02321052986,
-0.06646589649,
-0.006746702864,
-0.1173664553,
0.1083724253,
-0.05977013761,
-0.9399066237,
-1.110345495
],
[
"Martial Arts",
2010,
-0.1184929975,
-0.2111366249,
1.112574282,
475,
-0.5259438212,
-0.5050491497,
-0.7831819316,
0.06754192909,
-1.311560147,
-0.5965603943,
-0.4200744142,
-0.2743361515,
-0.2485259433,
1.482477383,
1.564850069
],
[
"Martial Arts",
2011,
0.07445872553,
0.07933746494,
0.9158385823,
735,
0.01469933003,
-0.08909480512,
-0.0559993674,
0.2410468816,
0.03953472369,
-0.2042424659,
0.07758200798,
-0.1750691923,
0.2319114335,
1.037613711,
0.9551745209
],
[
"Martial Arts",
2012,
-0.06732819981,
-0.6161472461,
0.8023957834,
950,
-0.285395872,
-0.3190401594,
-0.3776861762,
-0.3285019843,
0.2606801705,
-0.1276206919,
0.2365596555,
0.3098507488,
0.5657434001,
-0.04474840692,
-0.06248143233
],
[
"Martial Arts",
2013,
-0.05773232402,
-0.006987042319,
-0.1181870232,
1174,
-0.05204855493,
-0.2130875654,
0.04674544677,
0.05639024235,
0.1136223685,
0.3200056249,
-0.2672993022,
-0.2894971874,
-0.07465177212,
-0.5182664543,
-0.594636256
],
[
"Martial Arts",
2014,
-0.03186421868,
0.05128264899,
-0.235611568,
1611,
0.3215888616,
0.2303207606,
0.2354360801,
0.3911832414,
0.1919624701,
0.09558742267,
0.2846490756,
-0.4926665251,
0.024795392,
-0.7534366314,
-0.5192524668
],
[
"Martial Arts",
2015,
-0.06897953141,
0.3987140596,
-0.3627810983,
2459,
0.054187557,
-0.06776706847,
0.04963008739,
0.101884295,
-0.08554517796,
0.1930812865,
-0.219615829,
-0.1882141644,
-0.0920004975,
-0.588431403,
-0.703074032
],
[
"Martial Arts",
2016,
0.02515410821,
0.7732551857,
-0.6051279739,
3237,
0.1959634964,
0.1862577673,
0.2766232898,
0.3423344264,
0.1203531008,
0.03145324602,
0.3862017371,
0.04622766967,
0.2157414633,
-0.5266524137,
-0.6562444249
],
[
"Martial Arts",
2017,
-0.5049238806,
1.21032248,
-1.405170057,
2003,
-0.6031781934,
-0.4332437154,
-0.4589020304,
-0.8019073604,
-0.8515028956,
-0.3334993523,
-0.6857526335,
-0.3888514536,
-0.1732556025,
-0.9319236703,
-1.109824798
],
[
"Dance Studios",
2010,
-0.2471802158,
0.8712787113,
2.092976174,
498,
-0.9363294375,
-0.5613249621,
-1.214446257,
-1.626130891,
0.0524966841,
-0.4982738734,
-0.5362790609,
0.5040306208,
-0.8503440215,
3.209231542,
3.487738807
],
[
"Dance Studios",
2011,
-0.5339445684,
0.02976269337,
1.103254683,
678,
-1.1681146,
-0.667479321,
-0.8511339576,
-1.225550627,
-0.6276437933,
-0.4692965223,
-1.000944236,
-0.565897956,
-0.4918726451,
1.337250775,
1.981352019
],
[
"Dance Studios",
2012,
0.5747650928,
0.2788304218,
0.4664927981,
672,
-0.2724907795,
-0.4941770965,
-0.4799119969,
-0.08688488764,
-0.1014828543,
-0.04556677721,
0.654548761,
0.4193488,
0.6115999044,
0.4571616726,
0.7956595153
],
[
"Dance Studios",
2013,
0.01850032466,
0.1435435754,
0.1974411839,
851,
0.2763843762,
0.1683621682,
0.5100627914,
0.1042010887,
0.5538926109,
-0.05867762454,
0.04400045913,
0.09492687359,
-0.06844898626,
0.161085099,
0.4050267655
],
[
"Dance Studios",
2014,
0.08013667154,
0.4979728802,
-0.05080234624,
1350,
-0.05179014348,
0.1241664472,
0.03023902005,
0.03799579587,
0.1874630969,
0.1836949736,
0.4366994873,
0.2044301025,
0.07651161354,
-0.07106634106,
-0.04729104493
],
[
"Dance Studios",
2015,
0.2130621167,
0.6060339665,
0.2145437301,
1957,
0.4758590743,
0.3169420357,
0.2545259382,
0.3444980194,
0.3001882081,
0.1037137317,
0.06213306592,
0.406993995,
0.1918997835,
0.1970211558,
0.3373830372
],
[
"Dance Studios",
2016,
0.06467922677,
0.6340132579,
-0.5752846798,
2234,
-0.3549349227,
-0.4672154799,
-0.07055874964,
-0.5112119989,
-0.3563883442,
0.005272357,
-0.101852103,
0.4399878143,
-0.2641503893,
-0.3143116206,
-0.4109237475
],
[
"Dance Studios",
2017,
-0.2108654724,
0.2740931906,
-1.257293134,
1521,
0.06621939376,
-0.4075469574,
-0.2160022516,
0.08556049503,
-0.3594265633,
-0.2238890746,
-0.003592572724,
-0.1695556398,
-0.3338966323,
-0.8869943523,
-0.8482469154
],
[
"Pilates",
2010,
-0.5291403345,
0.6830426686,
2.015243962,
175,
-0.2251473133,
0.5947659122,
0.5559763195,
-0.1070406939,
1.076527562,
-0.7760467494,
-0.04485494579,
0.1269594092,
-1.122249874,
1.791558793,
1.842687155
],
[
"Pilates",
2011,
1.460787159,
-0.5247148953,
1.430146082,
282,
-0.1518393611,
-0.3734210384,
0.9234273945,
0.0313883763,
1.391650286,
1.731132543,
2.334643309,
1.765249228,
1.553454039,
0.7783995163,
1.201766448
],
[
"Pilates",
2012,
0.02439051416,
-1.598347314,
2.012531613,
640,
-0.1971917031,
0.4236233398,
-0.1144679985,
-0.01370011475,
0.0170045974,
0.03260958968,
0.2345413131,
0.03892630537,
-0.4461558985,
1.409231528,
2.184401963
],
[
"Pilates",
2013,
-0.2902122774,
0.08141446362,
0.4703190665,
599,
0.6286842491,
0.2207171473,
0.6428227576,
0.2530110033,
1.365903508,
-0.12734004,
-0.3344975938,
0.15557129,
-0.1411046194,
0.08908923622,
0.2236384188
],
[
"Pilates",
2014,
0.07355063714,
0.0541073762,
-0.3025791997,
907,
0.534803783,
0.9532175838,
0.6238244345,
0.2331455487,
1.314618553,
-0.4162072247,
-0.219904692,
0.04118424996,
-0.01145715467,
-0.4214215385,
-0.3382180014
],
[
"Pilates",
2015,
0.2306774537,
0.191745954,
-0.5213611979,
1310,
-0.1197046703,
-0.3268891393,
0.001953989995,
-0.1186462182,
0.1617532848,
0.01867390633,
0.4955648598,
0.2382150318,
0.2064703616,
-0.8805774493,
-0.809238034
],
[
"Pilates",
2016,
0.6730320088,
0.9743010069,
-0.6240891983,
1507,
0.5526755133,
0.1465034653,
-0.09701739585,
0.4074886943,
0.4431641309,
0.4572519945,
1.092568992,
0.8017937054,
0.6446067938,
-0.6076757483,
-0.7001011706
],
[
"Pilates",
2017,
0.8186326922,
0.3722633643,
-0.8238383508,
966,
0.7390495351,
1.06611064,
1.267680385,
0.869785629,
1.176120973,
0.6266140191,
0.5572880571,
0.3704542531,
1.063708347,
-0.7273031871,
-1.103569287
],
[
"Boot Camps",
2010,
-0.07389480486,
-1.166784299,
2.178197623,
204,
-0.1218146908,
0.6397267687,
-0.4402410289,
-0.2595548436,
-1.630043083,
-0.2133240633,
-0.1877935419,
-0.6473432649,
-0.5899336451,
1.721002435,
3.545639115
],
[
"Boot Camps",
2011,
0.4016487399,
-1.621698743,
1.159010686,
437,
-0.1958864996,
-0.0274463557,
-0.2687934541,
0.1713497126,
-0.2007381835,
0.7621721971,
0.714409538,
0.907007571,
0.3509651095,
0.9319014189,
1.250773364
],
[
"Boot Camps",
2012,
-0.4865306897,
-2.464994432,
0.8100569792,
480,
-0.276023874,
-0.5248556626,
-0.1410227527,
-0.330034297,
0.06848535228,
-0.5408922378,
0.0001893312326,
-0.1886243323,
0.6013676838,
0.08682898861,
0.6460306993
],
[
"Boot Camps",
2013,
0.02658351589,
-1.78697043,
0.4589900532,
573,
0.5122816491,
0.1394718214,
0.07938634149,
0.5599752885,
-0.1119219004,
0.4524044009,
0.4050906611,
0.6136470259,
-0.2773577412,
-0.1439018459,
-0.02881680415
],
[
"Boot Camps",
2014,
1.152197542,
-1.305597512,
0.01491019906,
751,
1.069167746,
0.5504328456,
1.020126011,
0.8756312257,
0.5198159649,
1.00259197,
0.9973412694,
0.5893078078,
1.097000235,
-0.909857194,
-0.5730033336
],
[
"Boot Camps",
2015,
0.1520040751,
-1.498205951,
0.3154005567,
1035,
1.051600387,
0.9038466434,
0.7766342927,
0.9369252829,
0.570526337,
0.3945774983,
0.1465435333,
0.2416986128,
0.4230823621,
-0.657421716,
-0.008026130521
],
[
"Boot Camps",
2016,
0.2793591075,
-0.1377454661,
-0.7541809808,
1277,
0.2836050135,
0.02590107536,
0.5816048211,
0.5454972405,
0.04085694402,
0.05970991395,
-0.05570012126,
0.5954763772,
-0.1052264415,
-0.9840078815,
-0.9198943247
],
[
"Boot Camps",
2017,
-0.5047608698,
0.9811326623,
-1.492477739,
812,
0.1837657335,
-0.08638893113,
-0.2775900601,
-0.001661240294,
-0.3122524473,
-0.440653961,
0.2720082443,
-0.2883576167,
0.1877566294,
-0.9568546483,
-1.068573642
],
[
"Interval Training Gyms",
2010,
-0.9836432123,
-2.195554593,
1.210261385,
102,
-1.242013474,
-0.394922912,
-0.1070048977,
-0.8655464057,
-0.4456492454,
-0.4605453271,
0.1631078213,
-0.01063559822,
-0.5478009721,
1.029550127,
1.204388229
],
[
"Interval Training Gyms",
2011,
0.04978066989,
-1.397111903,
0.7171663241,
248,
0.6358564176,
-0.4430461529,
0.3489552926,
1.028495945,
0.7726092254,
0.4838133175,
0.9417207538,
1.135811637,
0.5476485258,
-0.00762833564,
0.5847914863
],
[
"Interval Training Gyms",
2012,
1.044378024,
-0.9360970012,
0.3816812947,
268,
0.2023676669,
-0.6628328953,
0.003244867113,
0.434916992,
-0.1507560715,
1.084280082,
1.828579963,
0.6753154022,
1.573924978,
-0.00762833564,
0.148710297
],
[
"Interval Training Gyms",
2013,
0.8909898697,
-1.511732072,
0.6633435669,
363,
0.7148777352,
-0.077945862,
1.183252354,
1.011002384,
-0.7570976625,
0.6999644069,
1.403484068,
0.758579975,
0.2871920018,
0.6238219128,
0.5124004189
],
[
"Interval Training Gyms",
2014,
-0.3969960288,
-0.4721256989,
-0.3323142508,
467,
-0.3027150032,
-0.8634804637,
0.07983092034,
-1.090205041,
-0.392159004,
0.02825046207,
0.1895139808,
-0.6377994669,
-0.05971154831,
-0.778928685,
-1.00427181
],
[
"Interval Training Gyms",
2015,
-0.1455991128,
-1.082627541,
-0.6809837911,
638,
0.4877890684,
0.3417096448,
0.6515686779,
0.2438550748,
0.903796911,
0.1653868799,
-0.3931800541,
-0.230189966,
-0.09900215442,
-0.710382932,
-0.6576807182
],
[
"Interval Training Gyms",
2016,
0.6491352141,
0.3078244325,
-1.288018407,
774,
0.2439161714,
0.2355288495,
0.5207189773,
0.10216105,
0.7754699825,
0.6382158452,
0.7351197887,
0.4542193297,
0.658695881,
-1.192209422,
-1.334593759
],
[
"Interval Training Gyms",
2017,
0.09432480274,
-0.04714719658,
-1.273347713,
496,
0.6238894846,
0.09135467614,
0.703018682,
0.51918256,
-0.932344807,
-0.3804642457,
-0.1716229722,
-1.292453232,
0.3743609191,
-0.586560323,
-0.6695565314
],
[
"Boxing",
2010,
-0.5650221406,
0.7040821814,
-0.2048849069,
95,
-0.5571838147,
0.4353296347,
-1.093266921,
0.2033284137,
-0.7335306184,
-0.5611687187,
-1.625697624,
-1.741018156,
-1.442787647,
0.1249433475,
0.4138107145
],
[
"Boxing",
2011,
-0.4454587149,
-0.4790532413,
0.6226267225,
156,
-2.018654788,
-2.740005462,
-1.93766749,
-1.860669673,
-0.6320049192,
-0.6190204962,
-0.0489754202,
-0.4024557008,
-0.1135103428,
0.896578529,
1.758895018
],
[
"Boxing",
2012,
0.5729717576,
0.2605788152,
1.02005853,
264,
0.4726709681,
-0.01540553438,
0.7248231722,
0.2614062819,
1.262422859,
1.073350241,
0.1745007227,
-0.1237696051,
0.4174202638,
0.5839225839,
0.8543208124
],
[
"Boxing",
2013,
0.03087214002,
0.3776208637,
-0.523514513,
392,
0.108578698,
-0.1049558325,
-0.4076541623,
-0.7004715082,
0.1833539754,
0.004466097603,
0.5436772297,
0.2486544441,
0.2626080952,
-0.8558165534,
-0.8435776026
],
[
"Boxing",
2014,
0.2813067701,
0.1711761467,
-0.5627570062,
517,
0.1361385923,
0.4684098925,
0.3700749407,
0.1752037147,
0.09583554055,
-0.2306980915,
0.3137850024,
0.1474497236,
-0.1007219701,
-0.6166375184,
-0.7897149499
],
[
"Boxing",
2015,
-0.7003017236,
0.4892703619,
-0.1062683071,
655,
-0.2533689169,
0.02907590267,
-0.1277791603,
-0.1719847387,
0.606085907,
-0.6422183576,
-0.9798280473,
-1.185959952,
-0.1740745139,
-0.1191504691,
-0.1951887862
],
[
"Boxing",
2016,
0.4911448869,
0.5940968649,
-0.3842966101,
791,
0.8848321644,
0.9780191598,
1.246091075,
1.221798575,
1.65634014,
0.3524823772,
1.00078422,
0.7825963414,
0.4281217013,
-0.1955080535,
-0.03135417832
],
[
"Boxing",
2017,
-0.2497825585,
0.8324194922,
-0.8934673878,
566,
0.05116814184,
0.1726932659,
-0.6643609711,
-0.3350593999,
-0.2143252964,
0.2091942567,
-0.1089691569,
-0.1488991326,
-0.09014783857,
-0.6751712632,
-0.5764777033
],
[
"Barre Classes",
2010,
-1.210247211,
0.6847510051,
1.524888391,
117,
-0.9406080073,
-0.9045356945,
-0.8119274829,
-2.101850262,
-1.969624533,
-1.085993994,
-1.207078454,
-1.411689298,
-1.362365983,
1.65008425,
0.4697852189
],
[
"Barre Classes",
2011,
2.268378784,
-0.09287801508,
0.08722110391,
178,
0.677673453,
0.49454598,
1.629692018,
1.016076637,
1.751346882,
1.30981818,
1.122876558,
2.899098927,
0.8373698277,
-0.09253379564,
-0.06523155865
],
[
"Barre Classes",
2012,
-1.018993436,
-0.01652113159,
0.3227383119,
250,
-1.166363686,
-1.110611752,
-1.065836326,
-0.884095017,
-1.496529596,
-0.7664404375,
-0.4071570226,
-0.02823188283,
-0.6212803538,
0.0125225602,
0.1333275614
],
[
"Barre Classes",
2013,
1.211583027,
-0.04663056255,
0.4765771719,
312,
1.557923944,
0.2963859534,
1.421395435,
1.395268268,
1.515226566,
1.940353484,
1.065425612,
1.414164775,
0.8231313877,
0.2022768294,
0.3892158565
],
[
"Barre Classes",
2014,
-0.1581572162,
0.1020862317,
-0.4428395231,
546,
-0.3934313217,
-0.532946713,
-0.07526812328,
-0.792584211,
0.4843543074,
-0.311125882,
-1.01354102,
-0.9863694251,
-0.4755735327,
-0.3028795567,
-0.2898687698
],
[
"Barre Classes",
2015,
-0.02852846901,
0.1343164935,
-0.3357728049,
805,
-0.06588155803,
-0.144263596,
0.0619589295,
-0.02825360843,
0.5826533885,
0.3412090985,
0.1761848907,
0.517137894,
-0.1143316581,
-0.4738524785,
-0.3463173666
],
[
"Barre Classes",
2016,
1.305954618,
0.601025602,
-0.7262991381,
909,
1.142904188,
0.7611466292,
1.050523248,
1.41772615,
1.474682077,
1.082071843,
1.324176075,
1.451136699,
1.067701981,
-0.5313521137,
-0.2391188084
],
[
"Barre Classes",
2017,
0.3765999179,
0.4453038388,
-1.718528952,
549,
0.8678492545,
0.728215679,
1.504243391,
1.17112659,
1.186496063,
0.4238673542,
-0.2198430809,
-0.5761762381,
0.5946160957,
-1.076653548,
-1.434821677
],
[
"Swimming Lessons/Schools",
2010,
-2.060012207,
-1.087648122,
-0.2536705813,
78,
-1.752313819,
-0.1913245848,
-1.320326196,
-0.4480405134,
-3.09604105,
-1.481125416,
-2.212224483,
-1.159380899,
-2.868338962,
0.3798888921,
-0.09420031818
],
[
"Swimming Lessons/Schools",
2011,
0.295476729,
-2.00475509,
-0.4340545877,
114,
0.0780293847,
0.5042218534,
-0.4870110122,
0.9011200705,
-1.3693631,
0.4415954249,
0.4374968571,
-0.0837503542,
1.376996931,
-0.6704867514,
-0.6115404349
],
[
"Swimming Lessons/Schools",
2012,
-1.049595122,
-1.812416261,
-0.2530892896,
134,
1.309755493,
2.011239136,
0.6796644767,
1.858859527,
2.512924778,
-0.1702755846,
-0.002990478562,
-0.2058810971,
-0.286201092,
-0.4587677948,
1.086681979
],
[
"Swimming Lessons/Schools",
2013,
0.3159973698,
-1.98326866,
-1.15249579,
153,
-0.7376815544,
-0.9884428839,
-0.7919902785,
-1.199280889,
-0.01496057719,
0.1437733177,
0.2633653536,
0.9154846442,
1.053240602,
-1.176512,
-1.07525079
],
[
"Swimming Lessons/Schools",
2014,
0.6373155438,
-1.253438317,
-1.003831958,
199,
-0.4311249468,
0.07494370707,
0.01216748759,
0.01596808423,
0.441699267,
1.013671924,
1.527920158,
0.4419533142,
0.5908398087,
-1.260730527,
-0.4411749092
],
[
"Swimming Lessons/Schools",
2015,
-0.2869064355,
-1.516415776,
-0.9516379497,
241,
-0.6405336726,
-0.1579009741,
-1.037346711,
-1.216044141,
-0.7181804566,
0.19255649,
0.3016379386,
0.4870099262,
-0.6292691282,
-0.7078928695,
-0.7096700122
],
[
"Swimming Lessons/Schools",
2016,
0.09889408628,
0.7600720023,
0.08859033314,
698,
-0.09659531581,
-0.4289814808,
0.4383629254,
-0.2800137589,
-0.4700220282,
-0.006716034876,
0.2742816465,
-0.2541070373,
0.04278079379,
0.8512386432,
-0.1888520047
],
[
"Swimming Lessons/Schools",
2017,
-0.02823175738,
1.69425256,
-1.267333408,
777,
-0.5059614831,
-0.7968170054,
-0.05704092177,
-0.6513079921,
-1.019346506,
-0.1983698814,
-0.1190842292,
-0.2341202127,
0.0166792414,
-0.5230711346,
-0.8616312724
],
[
"Cardio Classes",
2010,
0.08295836884,
-0.612701119,
0.6474719334,
29,
1.320447513,
0.5725201736,
-2.349645758,
-0.4385358597,
-0.1634739111,
-1.16526801,
-2.10824386,
-1.248123853,
-2.11978553,
1.295231309,
1.03654901
],
[
"Cardio Classes",
2011,
2.172626773,
0.7472883237,
0.7784129098,
28,
-1.632732159,
-1.670188798,
-3.312419112,
-1.934500466,
-2.814436921,
0.6048605953,
2.161097216,
1.122207913,
-2.52201765,
0.3522090901,
-1.084052485
],
[
"Cardio Classes",
2012,
1.844374694,
0.3832296114,
2.145436704,
50,
2.869843463,
2.403924782,
2.401152383,
1.781846297,
0.2606801705,
3.907030333,
3.315204638,
1.813821279,
3.469970725,
2.108215728,
1.088557923
],
[
"Cardio Classes",
2013,
-0.7426189589,
-0.3981013863,
0.4608215234,
110,
-0.5458238171,
-1.514007006,
0.2484469756,
-1.941480831,
1.179221639,
-0.6778003771,
0.04279878247,
-0.9556992092,
0.0006898254476,
-0.1450208073,
-0.2597337356
],
[
"Cardio Classes",
2014,
-1.149140515,
1.469818007,
0.735746749,
267,
-0.6228229019,
-0.4798144719,
-0.5556880032,
-1.329143272,
-0.8811771121,
-0.5161006673,
-1.117710317,
-1.899296542,
-0.8043842166,
0.7187850444,
0.8644845675
],
[
"Cardio Classes",
2015,
-1.061851672,
1.120527995,
-0.3036462388,
339,
0.3683125093,
0.3098909269,
-0.05736352711,
0.03493047495,
0.5548443423,
-0.5684767343,
-1.468516975,
-1.715352505,
-0.9736019682,
0.1484073622,
-0.5769034896
],
[
"Cardio Classes",
2016,
1.127435729,
0.9667065448,
-0.3367626286,
427,
1.703435755,
0.9364116208,
1.178464534,
0.8536407344,
0.3491579456,
1.023168237,
0.9217309758,
0.5760518153,
1.010614572,
0.1280480708,
-0.4291197991
],
[
"Cardio Classes",
2017,
2.423428024,
1.316317836,
-1.095938832,
297,
1.340777267,
0.05276905698,
1.108689877,
0.2048523922,
1.216199959,
2.477808414,
1.40974441,
1.600720076,
2.428723421,
0.05173878174,
-0.5263450804
],
[
"Meditation Centers",
2010,
0.2192463487,
-1.354575702,
1.318471693,
180,
-0.06168280806,
0.1296204145,
0.7205314948,
-0.6846271857,
1.639601723,
0.0311502975,
0.3268617908,
0.2131767937,
1.454905418,
0.887967035,
1.374847724
],
[
"Meditation Centers",
2011,
-0.5819361233,
-0.8940042966,
0.3756702096,
264,
-0.7189454472,
-0.1641500974,
-0.2408042534,
-0.3493757273,
-1.150412521,
-0.4230875599,
-0.6002165726,
-1.197227159,
0.8406621152,
-0.122122062,
0.6638841376
],
[
"Meditation Centers",
2012,
-1.267707511,
-1.090851253,
0.1708467792,
280,
-1.229959387,
-0.7235359003,
-1.228503163,
-0.7443480933,
-0.6963715773,
-1.136283448,
-0.3954698589,
-0.8598547848,
0.08719859948,
-0.04361207821,
0.5992716943
],
[
"Meditation Centers",
2013,
0.989674077,
-0.7023948379,
-0.1391784039,
365,
0.02482154204,
-0.6582163701,
0.3338102037,
-0.1663642413,
-1.039173629,
1.039940992,
0.7012023578,
0.7721263053,
1.324736621,
-0.3871828806,
-0.4506921548
],
[
"Meditation Centers",
2014,
-0.4112106105,
-0.9318594806,
0.3227383119,
440,
0.202871025,
-0.2087734663,
0.1840718139,
0.7459600092,
0.05600516928,
-0.1811103835,
-0.7706543776,
-1.599773741,
-0.4290634391,
0.1412135086,
0.9971483186
],
[
"Meditation Centers",
2015,
0.8346099274,
-2.435108761,
0.3750645815,
418,
0.01649606434,
-0.05552742308,
-0.1662645925,
0.4167806527,
0.3121773466,
0.2271004209,
0.527200965,
-0.01783629389,
1.555204026,
0.4141906562,
1.658665189
],
[
"Meditation Centers",
2016,
-0.5157726028,
-1.797763413,
-0.9602983993,
425,
-0.1363627269,
-0.235153752,
-0.4646783452,
0.1187946708,
-0.02357435055,
-0.829729081,
-0.4264064689,
-0.464434517,
-0.2815224788,
-0.8314443715,
-0.05002935006
],
[
"Meditation Centers",
2017,
-0.9308816842,
-1.327643904,
-1.540766761,
335,
0.5212953609,
0.2016616245,
-0.5209803303,
0.4710169436,
-1.011329884,
-1.600469045,
-0.7356186551,
-0.5407357668,
-0.812167774,
-1.594135434,
-1.492740147
],
[
"Karate",
2010,
-1.542339279,
1.16779788,
0.2633784025,
87,
1.183996968,
2.265130718,
0.6456491228,
2.403355604,
-1.80454625,
-1.261883217,
-0.4626374667,
-1.383848371,
-1.033053137,
1.526850802,
0.3142030018
],
[
"Karate",
2011,
0.2478195032,
0.2587170849,
0.3924590154,
122,
0.3029402662,
0.9249161394,
0.2298731584,
0.3879015724,
-0.1138071568,
-0.7091175267,
0.7301381271,
-0.05997807016,
-0.7204758614,
0.03366448371,
-0.3187378857
],
[
"Karate",
2012,
-0.8291404858,
0.3392011205,
0.4863138086,
143,
-0.6454422576,
0.4494212249,
-1.696673295,
-0.8740218122,
-0.2799997576,
-1.294989126,
-1.795069017,
-0.9804713066,
-1.195406673,
-0.5889041772,
-0.8486225302
],
[
"Karate",
2013,
0.3972249061,
1.522903605,
-0.6528726864,
208,
0.8112180121,
1.58645899,
0.9402323672,
1.369427491,
0.56481263,
0.4316698748,
-0.1636931735,
0.8464708761,
0.4650036672,
-0.516244697,
-0.5272606413
],
[
"Karate",
2014,
-0.4145581696,
0.9230445351,
-1.41941154,
264,
0.618812604,
1.137364829,
0.2741970403,
0.6075160872,
-0.4432021507,
-0.5186048663,
-0.3290655193,
-0.7946805762,
-0.2988351771,
-1.476964491,
-1.169068858
],
[
"Karate",
2015,
-0.2780268335,
1.662013402,
-0.9512419778,
382,
0.4837949187,
0.7905213222,
0.04972658112,
0.2644974998,
-0.3994234983,
-0.2517231776,
-0.2730911807,
-0.5403666793,
-0.6448605329,
-0.6010774932,
-0.8842862651
],
[
"Karate",
2016,
-0.2112853807,
1.349853782,
-1.109381853,
595,
0.2726449179,
0.5139188674,
-0.01338141321,
0.3554701331,
-0.2118468255,
0.01506129462,
-0.2579738145,
-0.2421656588,
0.1720658408,
-0.9601391684,
-1.0576474
],
[
"Karate",
2017,
-0.8588189756,
1.339130752,
-1.663007488,
354,
-1.209958479,
-0.5539743016,
-0.9485673307,
-2.051628638,
-1.077082632,
-0.7706194545,
-1.563360871,
-0.9720739855,
-0.5206646742,
-1.259943896,
-1.649598688
],
[
"Golf Lessons",
2010,
-0.05337416409,
0.7566809634,
1.298041837,
19,
0.1300960404,
-0.184700333,
-0.1391592612,
0.4296392213,
-1.658377864,
-1.180523043,
1.065425612,
1.987834399,
1.452392241,
-0.1402000188,
-0.115402782
],
[
"Golf Lessons",
2011,
1.610868629,
0.9159249822,
2.443645768,
109,
1.564556288,
1.133100363,
1.324279953,
1.901178532,
3.231009523,
0.7067624137,
1.346882538,
1.38916541,
1.415040436,
0.662527604,
0.1637694753
],
[
"Golf Lessons",
2012,
-0.01001416608,
0.774511059,
1.409148935,
118,
0.6847382963,
0.1393266275,
1.275830912,
0.8180115819,
0.9084651267,
0.4878345491,
1.412078775,
-0.3716655232,
0.3291299167,
-0.2637837912,
0.4452047355
],
[
"Golf Lessons",
2013,
-1.150040709,
0.5927224171,
1.061223504,
239,
-0.6783531615,
-0.2171286786,
-0.5882685153,
-0.5160842897,
0.08054778857,
-1.069461299,
-0.7316591932,
-1.561596381,
-0.09967856726,
0.550947752,
0.4616945717
],
[
"Golf Lessons",
2014,
-0.5867926857,
2.042126153,
-0.4847265198,
579,
-1.113568637,
-1.18060339,
-0.8992320731,
-1.067862129,
-1.296984618,
-0.4409042595,
-0.4005161299,
-0.2973489893,
-0.5508572282,
0.3882549807,
-0.04285300429
],
[
"Golf Lessons",
2015,
0.008071163672,
1.85759439,
-0.7620779186,
704,
0.3335553725,
-0.1711224988,
-0.1925228821,
0.6253305624,
-0.2091987195,
-0.1405155283,
0.1212389086,
0.3123225261,
0.4377684297,
-0.07918691462,
-0.4489801812
],
[
"Golf Lessons",
2016,
-0.282369574,
1.751659629,
-1.235575501,
586,
-0.5728038114,
-0.7864785654,
-0.381858362,
-0.3857169095,
-0.02194273137,
0.09155403669,
-0.1037893638,
-0.1343026784,
-0.1417167791,
-0.7039690195,
-0.7362803909
],
[
"Golf Lessons",
2017,
1.027890047,
1.450474599,
-1.885356506,
268,
0.3906235974,
-0.4979928385,
0.3203165591,
-0.1466933392,
0.0541424554,
1.460646782,
0.4930598493,
1.424332427,
1.285284726,
-1.191869416,
-1.445841563
],
[
"Taekwondo",
2010,
0.5884220302,
-0.3028810388,
1.274981382,
104,
-0.002073162509,
0.4537119335,
-0.7756132891,
1.085178941,
-2.603233824,
0.6741368835,
0.3771190922,
0.8464708761,
0.3823588086,
2.801871565,
1.49704459
],
[
"Taekwondo",
2011,
0.6883268338,
0.674939613,
0.2857917228,
148,
-0.7131727007,
-0.3435481007,
-0.6548931314,
0.4468419009,
-0.5882421153,
0.9537384791,
0.7199435752,
2.672297199,
0.7218728222,
1.115647953,
0.9238044641
],
[
"Taekwondo",
2012,
0.0684467827,
0.2119078644,
0.4710133795,
168,
-0.4314800316,
0.3458312614,
-1.255479421,
0.1130735082,
1.173278695,
-1.196322898,
-0.3345992142,
1.403351558,
0.5988096287,
-0.6373438307,
-0.3359084055
],
[
"Taekwondo",
2013,
1.003499548,
1.016562519,
-1.401095769,
169,
0.208658154,
0.457342533,
0.070786766,
0.484877806,
0.2398847886,
0.6492684724,
1.186446539,
1.484034793,
1.056232271,
-1.15527551,
-1.575437059
],
[
"Taekwondo",
2014,
-0.3810825788,
0.5003283139,
-1.684071029,
198,
-0.5877926971,
-0.3686738715,
-1.056222968,
-0.9533712698,
-1.205880001,
-0.8051567857,
-0.01917860115,
-0.5859527185,
-0.01667394282,
-1.508768304,
-1.224612888
],
[
"Taekwondo",
2015,
-0.0911085874,
1.365398655,
-0.6348824768,
302,
0.3018125605,
0.1908421005,
0.01584374229,
0.06900320748,
0.2039490605,
-0.2957311513,
0.7268074567,
0.06373001727,
0.006899384959,
-0.5414269009,
-0.745158081
],
[
"Taekwondo",
2016,
0.6756904271,
1.324136702,
-0.6806281612,
482,
0.1414383616,
-0.04587965387,
-0.1793673771,
0.1109494688,
-0.216901737,
0.1053622684,
1.171507234,
0.7319898659,
0.6903052111,
-0.4988586803,
-0.3185241447
],
[
"Taekwondo",
2017,
0.1029415366,
1.462884282,
-1.554740633,
305,
-0.4511726895,
-0.3303904348,
-0.09516864166,
-1.339109591,
-0.3658659347,
0.4208052329,
-0.4768968196,
0.1723111054,
0.3785652742,
-1.337257119,
-1.565317628
],
[
"Kickboxing",
2010,
3.836841856,
0.8284065752,
3.332952323,
11,
-3.9453031,
-3.120448287,
-3.717062986,
-1.061954738,
2.177636279,
2.760822655,
-3.58287816,
3.23078525,
-3.359199334,
2.053258739,
0.425838294
],
[
"Kickboxing",
2011,
3.435134767,
0.5423896294,
1.256589957,
27,
1.570606848,
2.465736412,
5.095181373,
2.629883184,
0.03289371928,
1.883478507,
-0.07082642084,
-0.2678912211,
2.139327283,
1.5783218,
1.758895018
],
[
"Kickboxing",
2012,
-0.9836432123,
-0.1587401459,
-0.6236627763,
52,
-2.969872537,
-3.46370497,
-1.538211359,
-3.514479421,
-0.4912028545,
1.320715573,
-1.491141462,
-0.1753781413,
-2.096986948,
-0.2013869495,
-1.222171392
],
[
"Kickboxing",
2013,
0.04100095675,
-1.251982667,
-0.9056019088,
69,
1.685304408,
1.122005336,
0.1417148234,
1.643189929,
-0.1085885485,
-0.2957311513,
-0.1202286831,
0.3215597061,
-0.4488807833,
-0.9202594878,
-0.518065225
],
[
"Kickboxing",
2014,
-1.236144811,
-0.9064424285,
-1.48549422,
105,
-0.5021419215,
-0.4430461529,
-0.04829186505,
0.9065084231,
-1.454691268,
-1.816730545,
-1.077221079,
-2.054715276,
-1.66251112,
-1.087140613,
-0.9344236694
],
[
"Kickboxing",
2015,
-0.5693827768,
1.438821417,
0.08224338515,
192,
-0.5728038114,
-0.5197425682,
-0.6780188933,
-0.01090069721,
-0.1259974995,
0.09827773787,
-1.278094206,
-1.381727676,
0.1447548403,
0.4908964312,
-0.2049831915
],
[
"Kickboxing",
2016,
-1.104155339,
0.5558492504,
-0.5195692784,
220,
-0.3569638569,
-1.335513531,
-0.03480373593,
-0.08470352332,
-0.3184003207,
-1.059869603,
-0.7938958965,
-1.331409353,
-0.7025427893,
-0.3282107695,
-1.05956777
],
[
"Kickboxing",
2017,
-0.3392380904,
0.8662617592,
-1.647632404,
144,
-0.5934135292,
-1.227053954,
-1.750044156,
-0.7294178664,
-1.670420146,
0.9300742816,
0.9233941081,
-0.2952246311,
0.6670244326,
-1.406996102,
-1.470593593
],
[
"Tai Chi",
2010,
-5.402421191,
-0.8588530543,
0.4529310541,
7,
-3.752588855,
-1.84549489,
-1.289199744,
-3.854101066,
0.3234376621,
-5.098887133,
-4.778156272,
-3.51666223,
-3.135950885,
3.230908496,
-0.6351660375
],
[
"Tai Chi",
2011,
-0.4637869795,
-0.333970251,
1.448522613,
34,
4.053471683,
5.331742763,
2.447805441,
3.033877559,
2.030810597,
-1.037394943,
-0.4384373727,
-2.325936204,
0.5476485258,
3.400243755,
2.929520461
],
[
"Tai Chi",
2012,
-1.229130878,
0.7968605885,
1.031565464,
72,
-0.6552426829,
1.19314404,
-0.4911521045,
-0.2815110596,
-0.6789389407,
-1.229678148,
-0.212857925,
-0.04922394166,
-2.078621424,
1.601644596,
0.8860602582
],
[
"Tai Chi",
2013,
-3.099677737,
-0.8990694268,
0.01895524654,
71,
-2.182103472,
-0.996124528,
-1.722339665,
-2.080498258,
-0.8035454627,
-3.847360574,
-3.399564771,
-2.756386458,
-3.931470006,
-0.8235977095,
-0.5719425941
],
[
"Tai Chi",
2014,
0.1566865887,
-2.478426917,
0.7375818527,
93,
0.9110958757,
1.826507985,
0.425097957,
1.628113122,
2.381613464,
0.2465606531,
0.5156262414,
0.310519002,
-0.1917119294,
-0.6305726963,
0.1371117224
],
[
"Tai Chi",
2015,
1.922399963,
1.507753661,
-0.7473443777,
111,
1.552782227,
1.19314404,
2.305204394,
1.887407036,
1.143242733,
1.824580949,
1.249682699,
1.741483779,
-0.2266816806,
-1.391867802,
-1.185153037
],
[
"Tai Chi",
2016,
0.01116020706,
1.570447459,
-0.3945714392,
191,
0.5537168934,
0.2765348742,
0.9691791525,
0.1097234199,
1.095584811,
-0.1637072303,
-0.1660098372,
0.0778549485,
0.05264476557,
0.05831045965,
0.9253606715
],
[
"Tai Chi",
2017,
1.471233443,
0.2185174997,
-1.753112635,
108,
3.109465782,
3.374730963,
1.685682067,
1.684302148,
2.575153219,
2.428280922,
1.349488621,
2.356116132,
1.343487905,
-1.826806432,
-0.2777194215
] 
];
data.addColumn('string','category');
data.addColumn('number','year');
data.addColumn('number','negative');
data.addColumn('number','stars');
data.addColumn('number','useful');
data.addColumn('number','n');
data.addColumn('number','positive');
data.addColumn('number','joy');
data.addColumn('number','anticipation');
data.addColumn('number','trust');
data.addColumn('number','surprise');
data.addColumn('number','sadness');
data.addColumn('number','anger');
data.addColumn('number','disgust');
data.addColumn('number','fear');
data.addColumn('number','cool');
data.addColumn('number','funny');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartID1d6c3f8d7a5b() {
var data = gvisDataMotionChartID1d6c3f8d7a5b();
var options = {};
options["width"] = 600;
options["height"] = 500;
options["state"] = "";

    var chart = new google.visualization.MotionChart(
    document.getElementById('MotionChartID1d6c3f8d7a5b')
    );
    chart.draw(data,options);
    

}
  
 
// jsDisplayChart
(function() {
var pkgs = window.__gvisPackages = window.__gvisPackages || [];
var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
var chartid = "motionchart";
  
// Manually see if chartid is in pkgs (not all browsers support Array.indexOf)
var i, newPackage = true;
for (i = 0; newPackage && i < pkgs.length; i++) {
if (pkgs[i] === chartid)
newPackage = false;
}
if (newPackage)
  pkgs.push(chartid);
  
// Add the drawChart function to the global list of callbacks
callbacks.push(drawChartMotionChartID1d6c3f8d7a5b);
})();
function displayChartMotionChartID1d6c3f8d7a5b() {
  var pkgs = window.__gvisPackages = window.__gvisPackages || [];
  var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
  window.clearTimeout(window.__gvisLoad);
  // The timeout is set to 100 because otherwise the container div we are
  // targeting might not be part of the document yet
  window.__gvisLoad = setTimeout(function() {
  var pkgCount = pkgs.length;
  google.load("visualization", "1", { packages:pkgs, callback: function() {
  if (pkgCount != pkgs.length) {
  // Race condition where another setTimeout call snuck in after us; if
  // that call added a package, we must not shift its callback
  return;
}
while (callbacks.length > 0)
callbacks.shift()();
} });
}, 100);
}
 
// jsFooter
</script>
 
<!-- jsChart -->  
<script type="text/javascript" src="https://www.google.com/jsapi?callback=displayChartMotionChartID1d6c3f8d7a5b"></script>
 
<!-- divChart -->
  
<div id="MotionChartID1d6c3f8d7a5b" 
  style="width: 600; height: 500;">
</div>


(3) 四個運動項目 商業類別

3.1 設定商店評論選擇條件
#選擇boxing在2011年以後每年都有評論
#商業類別包含boxing
Boxing = rev %>%
  filter(bid %in% B$bid[X[,"Boxing"]]) %>%
  filter(year >= 2011) %>%
  group_by(bid) %>%
  summarise(
    n_year = n_distinct(year),   #
    n_rev = n()                  #
    ) %>%
  filter(
    n_year == 7,
     n_rev > 50 
    ) %>%
  dplyr::select(bid) %>%
  left_join(B)
Joining, by = "bid"
nrow(Boxing)
[1] 7
#選擇Karate在2011年以後每年都有評論
#商業類別包含Karate
Karate = rev %>%
  filter(bid %in% B$bid[X[,"Karate"]]) %>%
  filter(year >= 2011) %>%
  group_by(bid) %>%
  summarise(
    n_year = n_distinct(year),   #
    n_rev = n()                  #
    ) %>%
  filter(
    n_year == 7
   
    ) %>%
  dplyr::select(bid) %>%
  left_join(B)
Joining, by = "bid"
nrow(Karate)
[1] 5
#選擇Kickboxing在2011年後每年都有評論
#商業類別包含Kickboxing
Kickboxing = rev %>%
  filter(bid %in% B$bid[X[,"Karate"]]) %>%
  filter(year >= 2011) %>%
  group_by(bid) %>%
  summarise(
    n_year = n_distinct(year),   #
    n_rev = n()                  #
    ) %>%
  filter(
    n_year == 7
   
    ) %>%
  dplyr::select(bid) %>%
  left_join(B)
Joining, by = "bid"
nrow(Kickboxing)
[1] 5
#選擇Taichi在2011年後至少6年有評論
#商業類別包含TaiChi
TaiChi = rev %>%
  filter(bid %in% B$bid[X[,"Tai Chi"]]) %>%
  filter(year >= 2011) %>%
  group_by(bid) %>%
  summarise(
    n_year = n_distinct(year),   #
    n_rev = n()                  #
    ) %>%
  filter(
    n_year >=6
   
    ) %>%
  dplyr::select(bid) %>%
  left_join(B)
Joining, by = "bid"
nrow(TaiChi)
[1] 5
3.2 選出評論

選出這一些商店在2011年之後的所有評論,放在資料框R裡面

R = rev %>% filter(bid %in% Boxing$bid & year >= 2011)
par(mar=c(3,4,3,2), cex=0.8)
R %>% count(bid) %>% .$n %>% hist(8, main="No. Reviews per Biz")

R = rev %>% filter(bid %in% Karate$bid & year >= 2011)
par(mar=c(3,4,3,2), cex=0.8)
R %>% count(bid) %>% .$n %>% hist(8, main="No. Reviews per Biz")

R = rev %>% filter(bid %in% Kickboxing$bid & year >= 2011)
par(mar=c(3,4,3,2), cex=0.8)
R %>% count(bid) %>% .$n %>% hist(8, main="No. Reviews per Biz")

R = rev %>% filter(bid %in% TaiChi$bid & year >= 2011)
par(mar=c(3,4,3,2), cex=0.8)
R %>% count(bid) %>% .$n %>% hist(8, main="No. Reviews per Biz")


(4) 從平台取出評論內容:txt

#########################################################
# library(dplyr) 
# library(sparklyr)
# Sys.setenv(SPARK_HOME="/usr/local/spark/spark-2.1.0-bin-hadoop2.7/")
# config <- spark_config()
# config$spark.ui.port = "4044"
# config$spark.executor.memory = "4G"
# config$spark.driver.memory = "4G" 
# config$spark.yarn.executor.memoryOverhead = "4096"
# sc <- spark_connect(master = "spark://hnamenode:7077", config = config)
# 
# yelp = "hdfs://192.168.1.100:9000/home/tonychuo/yelp10/pq01/"
# Text = spark_read_parquet(sc, "Text", paste0(yelp, "Text"))
# txt = Text %>% filter(rid %in% R$rid) %>% collect
# 
# spark_disconnect(sc)
# nrow(txt)

總共有10,925篇評論

# c(setequal(R$rid, txt$rid), identical(R$rid, txt$rid))

從平台取出的評論次序和R$rid是不同的,所以需要排序一下

# txt = left_join(R[,"rid",F], txt)
# identical(R$rid, txt$rid)
從主機取出話題評分
ypath = "./prep2/" 
load(paste0(ypath, "empath.rdata"))
empath = left_join(R[,"rid",F], empath)
Joining, by = "rid"
identical(R$rid, empath$rid)
[1] TRUE
gc()                                # release memory
            used  (Mb) gc trigger (Mb)   max used (Mb)
Ncells   2584954 138.1    5298101  283    5298101  283
Vcells 101458218 774.1  883446719 6740 1025279517 7822
par(mar=c(3,4,3,2), cex=0.8)
R$year %>% table %>% barplot(main="No. Review by Year")


(5) 聲量、星等、互動、情緒

5.1 商店間的動態比較
df = R %>% group_by(bid, year) %>% 
  mutate(engage = useful + cool + funny) %>% 
  summarise_at(
    c("engage", "stars", "positive", "negative"), 
    mean) %>% 
  left_join(count(R, bid, year)) %>% 
  data.frame
Joining, by = c("bid", "year")
p = gvisMotionChart(df, "bid", "year")
plot(p)
<!-- MotionChart generated in R 3.5.1 by googleVis 0.6.2 package -->
<!-- Fri Aug 31 15:35:09 2018 -->


<!-- jsHeader -->
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartID1d6cf693bf9 () {
var data = new google.visualization.DataTable();
var datajson =
[
 [
"28801",
2011,
1,
4,
2,
1,
1
],
[
"28801",
2012,
2,
5,
1,
0,
1
],
[
"28801",
2013,
1.4,
4.4,
2,
0.6,
5
],
[
"28801",
2014,
2,
3,
2,
0,
1
],
[
"28801",
2015,
1.5,
3.5,
4,
1.5,
2
],
[
"28801",
2016,
4.666666667,
3,
5,
3.166666667,
6
],
[
"28801",
2017,
0.6666666667,
2.166666667,
3.166666667,
2,
6
],
[
"32448",
2011,
3.6,
3.4,
12.2,
3.4,
5
],
[
"32448",
2012,
1.545454545,
3.818181818,
6.818181818,
1.636363636,
11
],
[
"32448",
2013,
1,
5,
6,
1,
1
],
[
"32448",
2014,
0.75,
2.5,
7.75,
1.75,
4
],
[
"32448",
2015,
0,
4,
12,
0,
1
],
[
"32448",
2017,
0,
4,
3,
2,
1
],
[
"92398",
2012,
6.2,
5,
4,
1.8,
5
],
[
"92398",
2013,
2.4,
5,
2.6,
1.2,
5
],
[
"92398",
2014,
5,
5,
2,
0,
1
],
[
"92398",
2015,
1.142857143,
4.142857143,
6,
3.142857143,
7
],
[
"92398",
2016,
0.1111111111,
4.555555556,
5,
1.888888889,
9
],
[
"92398",
2017,
0.6666666667,
4.5,
4.166666667,
1.833333333,
6
],
[
"136347",
2011,
1.8,
2.2,
5.6,
1.2,
5
],
[
"136347",
2012,
1.857142857,
2.714285714,
7.142857143,
1.714285714,
7
],
[
"136347",
2013,
0.9285714286,
2.071428571,
5.357142857,
2.071428571,
14
],
[
"136347",
2014,
0.2307692308,
2.615384615,
7.923076923,
1.538461538,
13
],
[
"136347",
2015,
4.4,
2.2,
6.6,
2.8,
5
],
[
"136347",
2016,
0,
3,
12,
8,
1
],
[
"144635",
2012,
3.888888889,
4.088888889,
5.177777778,
1.844444444,
45
],
[
"144635",
2013,
1.5,
4.233333333,
4.733333333,
1.766666667,
30
],
[
"144635",
2014,
1.64,
3.76,
3.84,
1.44,
25
],
[
"144635",
2015,
1.555555556,
4.148148148,
4.62962963,
1.518518519,
27
],
[
"144635",
2016,
1.277777778,
4.111111111,
6.222222222,
2.055555556,
18
],
[
"144635",
2017,
0.1538461538,
3.923076923,
5.692307692,
2.153846154,
13
] 
];
data.addColumn('string','bid');
data.addColumn('number','year');
data.addColumn('number','engage');
data.addColumn('number','stars');
data.addColumn('number','positive');
data.addColumn('number','negative');
data.addColumn('number','n');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartID1d6cf693bf9() {
var data = gvisDataMotionChartID1d6cf693bf9();
var options = {};
options["width"] = 600;
options["height"] = 500;
options["state"] = "";

    var chart = new google.visualization.MotionChart(
    document.getElementById('MotionChartID1d6cf693bf9')
    );
    chart.draw(data,options);
    

}
  
 
// jsDisplayChart
(function() {
var pkgs = window.__gvisPackages = window.__gvisPackages || [];
var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
var chartid = "motionchart";
  
// Manually see if chartid is in pkgs (not all browsers support Array.indexOf)
var i, newPackage = true;
for (i = 0; newPackage && i < pkgs.length; i++) {
if (pkgs[i] === chartid)
newPackage = false;
}
if (newPackage)
  pkgs.push(chartid);
  
// Add the drawChart function to the global list of callbacks
callbacks.push(drawChartMotionChartID1d6cf693bf9);
})();
function displayChartMotionChartID1d6cf693bf9() {
  var pkgs = window.__gvisPackages = window.__gvisPackages || [];
  var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
  window.clearTimeout(window.__gvisLoad);
  // The timeout is set to 100 because otherwise the container div we are
  // targeting might not be part of the document yet
  window.__gvisLoad = setTimeout(function() {
  var pkgCount = pkgs.length;
  google.load("visualization", "1", { packages:pkgs, callback: function() {
  if (pkgCount != pkgs.length) {
  // Race condition where another setTimeout call snuck in after us; if
  // that call added a package, we must not shift its callback
  return;
}
while (callbacks.length > 0)
callbacks.shift()();
} });
}, 100);
}
 
// jsFooter
</script>
 
<!-- jsChart -->  
<script type="text/javascript" src="https://www.google.com/jsapi?callback=displayChartMotionChartID1d6cf693bf9"></script>
 
<!-- divChart -->
  
<div id="MotionChartID1d6cf693bf9" 
  style="width: 600; height: 500;">
</div>
5.2 加入店名、去除極端值
df = left_join(df, B[,c("bid","name")])    # merge in biz name
Joining, by = "bid"
df = cbind(df[,-c(1:2)], df[,1:2,F]) %>%   # move bid to the last column
 
  data.frame

df$name <- paste0(df$bid,df$name)          # 避免有相同店名卻不同店家的狀況產生
    p = gvisMotionChart(df, "name", "year") 
plot(p)
<!-- MotionChart generated in R 3.5.1 by googleVis 0.6.2 package -->
<!-- Fri Aug 31 15:35:09 2018 -->


<!-- jsHeader -->
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartID1d6c489b3641 () {
var data = new google.visualization.DataTable();
var datajson =
[
 [
"28801Community Yoga",
2011,
1,
4,
2,
1,
1,
28801
],
[
"28801Community Yoga",
2012,
2,
5,
1,
0,
1,
28801
],
[
"28801Community Yoga",
2013,
1.4,
4.4,
2,
0.6,
5,
28801
],
[
"28801Community Yoga",
2014,
2,
3,
2,
0,
1,
28801
],
[
"28801Community Yoga",
2015,
1.5,
3.5,
4,
1.5,
2,
28801
],
[
"28801Community Yoga",
2016,
4.666666667,
3,
5,
3.166666667,
6,
28801
],
[
"28801Community Yoga",
2017,
0.6666666667,
2.166666667,
3.166666667,
2,
6,
28801
],
[
"32448PKA Karate Academy",
2011,
3.6,
3.4,
12.2,
3.4,
5,
32448
],
[
"32448PKA Karate Academy",
2012,
1.545454545,
3.818181818,
6.818181818,
1.636363636,
11,
32448
],
[
"32448PKA Karate Academy",
2013,
1,
5,
6,
1,
1,
32448
],
[
"32448PKA Karate Academy",
2014,
0.75,
2.5,
7.75,
1.75,
4,
32448
],
[
"32448PKA Karate Academy",
2015,
0,
4,
12,
0,
1,
32448
],
[
"32448PKA Karate Academy",
2017,
0,
4,
3,
2,
1,
32448
],
[
"92398Desert Song Healing Arts Center",
2012,
6.2,
5,
4,
1.8,
5,
92398
],
[
"92398Desert Song Healing Arts Center",
2013,
2.4,
5,
2.6,
1.2,
5,
92398
],
[
"92398Desert Song Healing Arts Center",
2014,
5,
5,
2,
0,
1,
92398
],
[
"92398Desert Song Healing Arts Center",
2015,
1.142857143,
4.142857143,
6,
3.142857143,
7,
92398
],
[
"92398Desert Song Healing Arts Center",
2016,
0.1111111111,
4.555555556,
5,
1.888888889,
9,
92398
],
[
"92398Desert Song Healing Arts Center",
2017,
0.6666666667,
4.5,
4.166666667,
1.833333333,
6,
92398
],
[
"136347BODY & BRAIN Yoga·Tai Chi",
2011,
1.8,
2.2,
5.6,
1.2,
5,
136347
],
[
"136347BODY & BRAIN Yoga·Tai Chi",
2012,
1.857142857,
2.714285714,
7.142857143,
1.714285714,
7,
136347
],
[
"136347BODY & BRAIN Yoga·Tai Chi",
2013,
0.9285714286,
2.071428571,
5.357142857,
2.071428571,
14,
136347
],
[
"136347BODY & BRAIN Yoga·Tai Chi",
2014,
0.2307692308,
2.615384615,
7.923076923,
1.538461538,
13,
136347
],
[
"136347BODY & BRAIN Yoga·Tai Chi",
2015,
4.4,
2.2,
6.6,
2.8,
5,
136347
],
[
"136347BODY & BRAIN Yoga·Tai Chi",
2016,
0,
3,
12,
8,
1,
136347
],
[
"144635Kinesphere Center for Movement Education",
2012,
3.888888889,
4.088888889,
5.177777778,
1.844444444,
45,
144635
],
[
"144635Kinesphere Center for Movement Education",
2013,
1.5,
4.233333333,
4.733333333,
1.766666667,
30,
144635
],
[
"144635Kinesphere Center for Movement Education",
2014,
1.64,
3.76,
3.84,
1.44,
25,
144635
],
[
"144635Kinesphere Center for Movement Education",
2015,
1.555555556,
4.148148148,
4.62962963,
1.518518519,
27,
144635
],
[
"144635Kinesphere Center for Movement Education",
2016,
1.277777778,
4.111111111,
6.222222222,
2.055555556,
18,
144635
],
[
"144635Kinesphere Center for Movement Education",
2017,
0.1538461538,
3.923076923,
5.692307692,
2.153846154,
13,
144635
] 
];
data.addColumn('string','name');
data.addColumn('number','year');
data.addColumn('number','engage');
data.addColumn('number','stars');
data.addColumn('number','positive');
data.addColumn('number','negative');
data.addColumn('number','n');
data.addColumn('number','bid');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartID1d6c489b3641() {
var data = gvisDataMotionChartID1d6c489b3641();
var options = {};
options["width"] = 600;
options["height"] = 500;
options["state"] = "";

    var chart = new google.visualization.MotionChart(
    document.getElementById('MotionChartID1d6c489b3641')
    );
    chart.draw(data,options);
    

}
  
 
// jsDisplayChart
(function() {
var pkgs = window.__gvisPackages = window.__gvisPackages || [];
var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
var chartid = "motionchart";
  
// Manually see if chartid is in pkgs (not all browsers support Array.indexOf)
var i, newPackage = true;
for (i = 0; newPackage && i < pkgs.length; i++) {
if (pkgs[i] === chartid)
newPackage = false;
}
if (newPackage)
  pkgs.push(chartid);
  
// Add the drawChart function to the global list of callbacks
callbacks.push(drawChartMotionChartID1d6c489b3641);
})();
function displayChartMotionChartID1d6c489b3641() {
  var pkgs = window.__gvisPackages = window.__gvisPackages || [];
  var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
  window.clearTimeout(window.__gvisLoad);
  // The timeout is set to 100 because otherwise the container div we are
  // targeting might not be part of the document yet
  window.__gvisLoad = setTimeout(function() {
  var pkgCount = pkgs.length;
  google.load("visualization", "1", { packages:pkgs, callback: function() {
  if (pkgCount != pkgs.length) {
  // Race condition where another setTimeout call snuck in after us; if
  // that call added a package, we must not shift its callback
  return;
}
while (callbacks.length > 0)
callbacks.shift()();
} });
}, 100);
}
 
// jsFooter
</script>
 
<!-- jsChart -->  
<script type="text/javascript" src="https://www.google.com/jsapi?callback=displayChartMotionChartID1d6c489b3641"></script>
 
<!-- divChart -->
  
<div id="MotionChartID1d6c489b3641" 
  style="width: 600; height: 500;">
</div>
5.3 星等上升、下降最快的商店

使用線性回歸找出星等上升、下降最快的商店

library(stringr)
bx = sapply(split(df, df$bid), function(x) {
  lm(stars ~ year, x) %>% coef %>% `[`("year") }) %>%  # take lm coef.
  .[ abs(.) > 0.15  ] %>%                              # 
  names %>% str_extract("[0-9]*") %>% 
  as.integer
p = df %>% filter(bid %in% bx) %>% gvisMotionChart("name", "year")
plot(p)
<!-- MotionChart generated in R 3.5.1 by googleVis 0.6.2 package -->
<!-- Fri Aug 31 15:35:09 2018 -->


<!-- jsHeader -->
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartID1d6c5b638e9 () {
var data = new google.visualization.DataTable();
var datajson =
[
 [
"28801Community Yoga",
2011,
1,
4,
2,
1,
1,
28801
],
[
"28801Community Yoga",
2012,
2,
5,
1,
0,
1,
28801
],
[
"28801Community Yoga",
2013,
1.4,
4.4,
2,
0.6,
5,
28801
],
[
"28801Community Yoga",
2014,
2,
3,
2,
0,
1,
28801
],
[
"28801Community Yoga",
2015,
1.5,
3.5,
4,
1.5,
2,
28801
],
[
"28801Community Yoga",
2016,
4.666666667,
3,
5,
3.166666667,
6,
28801
],
[
"28801Community Yoga",
2017,
0.6666666667,
2.166666667,
3.166666667,
2,
6,
28801
] 
];
data.addColumn('string','name');
data.addColumn('number','year');
data.addColumn('number','engage');
data.addColumn('number','stars');
data.addColumn('number','positive');
data.addColumn('number','negative');
data.addColumn('number','n');
data.addColumn('number','bid');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartID1d6c5b638e9() {
var data = gvisDataMotionChartID1d6c5b638e9();
var options = {};
options["width"] = 600;
options["height"] = 500;
options["state"] = "";

    var chart = new google.visualization.MotionChart(
    document.getElementById('MotionChartID1d6c5b638e9')
    );
    chart.draw(data,options);
    

}
  
 
// jsDisplayChart
(function() {
var pkgs = window.__gvisPackages = window.__gvisPackages || [];
var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
var chartid = "motionchart";
  
// Manually see if chartid is in pkgs (not all browsers support Array.indexOf)
var i, newPackage = true;
for (i = 0; newPackage && i < pkgs.length; i++) {
if (pkgs[i] === chartid)
newPackage = false;
}
if (newPackage)
  pkgs.push(chartid);
  
// Add the drawChart function to the global list of callbacks
callbacks.push(drawChartMotionChartID1d6c5b638e9);
})();
function displayChartMotionChartID1d6c5b638e9() {
  var pkgs = window.__gvisPackages = window.__gvisPackages || [];
  var callbacks = window.__gvisCallbacks = window.__gvisCallbacks || [];
  window.clearTimeout(window.__gvisLoad);
  // The timeout is set to 100 because otherwise the container div we are
  // targeting might not be part of the document yet
  window.__gvisLoad = setTimeout(function() {
  var pkgCount = pkgs.length;
  google.load("visualization", "1", { packages:pkgs, callback: function() {
  if (pkgCount != pkgs.length) {
  // Race condition where another setTimeout call snuck in after us; if
  // that call added a package, we must not shift its callback
  return;
}
while (callbacks.length > 0)
callbacks.shift()();
} });
}, 100);
}
 
// jsFooter
</script>
 
<!-- jsChart -->  
<script type="text/javascript" src="https://www.google.com/jsapi?callback=displayChartMotionChartID1d6c5b638e9"></script>
 
<!-- divChart -->
  
<div id="MotionChartID1d6c5b638e9" 
  style="width: 600; height: 500;">
</div>


(6) 商店與話題

6.1 商店話題矩陣與熱圖

Make biz-theme matrix - mx

library(d3heatmap)
mx = sapply(split(empath[,-1], R$bid), colMeans) %>%  t    # biz-theme matrix
bnames = B$name[match(rownames(mx), B$bid)]
rownames(mx) = bnames

Select themes with medium-high weights

rx = colSums(mx) %>% quantile(c(0.60, 0.95))          #     
mx = mx[, colSums(mx) > rx[1] & colSums(mx) < rx[2]]  #

Check the range of weights

par(cex=0.8)
hist(log(mx+1e-4))

6.2 D3heatmap
mx %>% {log(.+1e-4)} %>% t %>% d3heatmap(color=rev(cm.colors(9)))
6.3 熱圖 + 互動式集群分析

這個工具不能投射在網頁上,只能直接在Rstudio裡面做

library(morpheus)
mx %>% {log(.+1e-4)} %>% morpheus


(7) 商店的情緒分佈

將商店投射到尺度縮減之後的情緒平面上

7.1 建立商店情緒矩陣
pcx = sapply(split(R[,10:19], R$bid), colMeans) %>% t
rownames(pcx) = bnames
7.2 尺度縮減
library(FactoMineR)
library(factoextra)
pcx = pcx %>% scale %>% PCA(ncp=10, graph=F) 
# par(cex=0.5)
# barplot(pcx$eig[1:4,3],names=1:10,main="Accumulated Variance",
#         xlab="No. Components", ylab="% of Variance")
# abline(h=seq(0,100,10),col='lightgray')

前三個主成分已經涵蓋了90%的變異

7.3 情緒平面上的商店
source("bipcx.R")

N = n_distinct(R$bid)
bipcx(pcx,1,2,10,N,t1="Strength",t2="Valence",
      obs='Business', main="Strength & Valence of Sentiment")
bipcx(pcx,3,2,10,N,t1="Arosual",t2="Valence",
      obs='Business', main="Strength & Valence of Sentiment")


(8) 文字分析與字雲

8.1 建立字頻表 (文件字詞矩陣)
library(tm)
dtm = txt$text %>% 
  iconv(to = "utf-8", sub="") %>% 
  VectorSource %>% Corpus %>% 
  tm_map(content_transformer(tolower)) %>% 
  tm_map(removePunctuation) %>% 
  tm_map(removeWords, stopwords("english")) %>% 
  tm_map(stemDocument) %>% 
  DocumentTermMatrix %>% 
  removeSparseTerms(0.998)
dtm  # (documents: 10925, terms: 2520)
8.2 使用TF-IDF篩選字詞
library(slam)
tfidf = tapply(dtm$v/row_sums(dtm)[dtm$i], dtm$j, mean) *
  log2(nrow(dtm)/col_sums(dtm > 0))
summary(tfidf)
dtm = dtm[, tfidf > 0.1471 ]
dtm = dtm[,order(-col_sums(dtm))]
dim(dtm)
8.3 使用tSNE做尺度縮減
library(Rtsne)
n = 800
tsne = dtm[, 1:n] %>% as.data.frame.matrix %>% 
  scale %>% t %>% Rtsne(
    check_duplicates = FALSE, theta=0.0, max_iter=3200)
8.4 層級式集群分析
Y = tsne$Y              # tSNE coordinates
d = dist(Y)             # distance matrix
hc = hclust(d)          # hi-clustering
K = 100                 # number of clusters 
g = cutree(hc,K)        # cut into K clusters
table(g) %>% as.vector %>% sort         # sizes of clusters
8.5 文字雲
library(randomcoloR)
library(wordcloud)

wc = col_sums(dtm[,1:n])
colors = distinctColorPalette(K)

png("fig/japs2.png", width=3200, height=1800)
textplot(
  Y[,1], Y[,2], colnames(dtm)[1:n], show=F, 
  col=colors[g],
  cex= 0.2 + 1.25 * sqrt(wc/mean(wc)),
  font=2)
dev.off()

(9) 商務屬性 Business Attributes

9.1 bizatt 資料框
summary(bizatt)
      bid         AcceptsInsurance  AgesAllowed              Alcohol          BYOB        
 Min.   :     1   Mode :logical    18plus :    86   beer_and_wine:  6444   Mode :logical  
 1st Qu.: 39150   FALSE:2149       19plus :    63   full_bar     : 18767   FALSE:857      
 Median : 78310   TRUE :6426       21plus :   211   none         : 19022   TRUE :48       
 Mean   : 78311   NA's :147684     allages:    35   NA's         :112026   NA's :155354   
 3rd Qu.:117462                    NA's   :155864                                         
 Max.   :156639                                                                           
                                                                                          
      BYOBCorkage     BikeParking     BusinessAcceptsBitcoin BusinessAcceptsCreditCards
 no         :   752   Mode :logical   Mode :logical          Mode :logical             
 yes_corkage:   157   FALSE:16419     FALSE:8663             FALSE:7579                
 yes_free   :   491   TRUE :57064     TRUE :211              TRUE :113145              
 NA's       :154859   NA's :82776     NA's :147385           NA's :35535               
                                                                                       
                                                                                       
                                                                                       
 ByAppointmentOnly   Caters        CoatCheck        Corkage        DogsAllowed     DriveThru      
 Mode :logical     Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:18059       FALSE:17221     FALSE:6887      FALSE:512       FALSE:7642      FALSE:3686     
 TRUE :16714       TRUE :17306     TRUE :1089      TRUE :140       TRUE :3568      TRUE :2352     
 NA's :121486      NA's :121732    NA's :148283    NA's :155607    NA's :145049    NA's :150221   
                                                                                                  
                                                                                                  
                                                                                                  
 GoodForDancing  GoodForKids     HappyHour         HasTV             NoiseLevel     Open24Hours    
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   average  : 26119   Mode :logical  
 FALSE:6470      FALSE:11114     FALSE:2478      FALSE:21116     loud     :  3908   FALSE:318      
 TRUE :2062      TRUE :47232     TRUE :5937      TRUE :22601     quiet    :  8947   TRUE :29       
 NA's :147727    NA's :97913     NA's :147844    NA's :112542    very_loud:  1670   NA's :155912   
                                                                 NA's     :115615                  
                                                                                                   
                                                                                                   
 OutdoorSeating  RestaurantsAttire RestaurantsCounterService RestaurantsDelivery
 Mode :logical   casual: 43277     Mode :logical             Mode :logical      
 FALSE:29680     dressy:  1397     FALSE:150                 FALSE:35526        
 TRUE :20619     formal:   125     TRUE :246                 TRUE :11264        
 NA's :105960    NA's  :111460     NA's :155863              NA's :109469       
                                                                                
                                                                                
                                                                                
 RestaurantsGoodForGroups RestaurantsPriceRange2 RestaurantsReservations RestaurantsTableService
 Mode :logical            Min.   :1              Mode :logical           Mode :logical          
 FALSE:6223               1st Qu.:1              FALSE:28014             FALSE:14318            
 TRUE :43391              Median :2              TRUE :18496             TRUE :25636            
 NA's :106645             Mean   :2              NA's :109749            NA's :116305           
                          3rd Qu.:2                                                             
                          Max.   :4                                                             
                          NA's   :59929                                                         
 RestaurantsTakeOut    Smoking       WheelchairAccessible   WiFi          casual       
 Mode :logical      no     :  3019   Mode :logical        free: 20924   Mode :logical  
 FALSE:5355         outdoor:  3513   FALSE:5815           no  : 21954   FALSE:23947    
 TRUE :49277        yes    :  1140   TRUE :38202          paid:   543   TRUE :18942    
 NA's :101627       NA's   :148587   NA's :112242         NA's:112838   NA's :113370   
                                                                                       
                                                                                       
                                                                                       
   classy          divey          hipster         intimate        romantic        touristy      
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:41968     FALSE:26060     FALSE:41903     FALSE:42299     FALSE:42367     FALSE:42658    
 TRUE :921       TRUE :1111      TRUE :963       TRUE :590       TRUE :522       TRUE :231      
 NA's :113370    NA's :129088    NA's :113393    NA's :113370    NA's :113370    NA's :113370   
                                                                                                
                                                                                                
                                                                                                
   trendy         upscale          friday          monday         saturday         sunday       
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:40921     FALSE:42492     FALSE:1857      FALSE:5698      FALSE:1726      FALSE:5113     
 TRUE :1968      TRUE :397       TRUE :4534      TRUE :693       TRUE :4665      TRUE :1278     
 NA's :113370    NA's :113370    NA's :149868    NA's :149868    NA's :149868    NA's :149868   
                                                                                                
                                                                                                
                                                                                                
  thursday        tuesday        wednesday         garage           lot            street       
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:3841      FALSE:5738      FALSE:5247      FALSE:84470     FALSE:54451     FALSE:72745    
 TRUE :2550      TRUE :653       TRUE :1144      TRUE :4950      TRUE :34969     TRUE :16675    
 NA's :149868    NA's :149868    NA's :149868    NA's :66839     NA's :66839     NA's :66839    
                                                                                                
                                                                                                
                                                                                                
   valet         validated       dairy-free      gluten-free       halal           kosher       
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:87761     FALSE:86762     FALSE:231       FALSE:225       FALSE:243       FALSE:245      
 TRUE :1659      TRUE :440       TRUE :18        TRUE :24        TRUE :6         TRUE :4        
 NA's :66839     NA's :69057     NA's :156010    NA's :156010    NA's :156010    NA's :156010   
                                                                                                
                                                                                                
                                                                                                
  soy-free         vegan         vegetarian      breakfast         brunch         dessert       
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:243       FALSE:128       FALSE:177       FALSE:39214     FALSE:39388     FALSE:41418    
 TRUE :6         TRUE :121       TRUE :72        TRUE :3726      TRUE :3552      TRUE :1522     
 NA's :156010    NA's :156010    NA's :156010    NA's :113319    NA's :113319    NA's :113319   
                                                                                                
                                                                                                
                                                                                                
   dinner        latenight         lunch         africanamerican   asian          coloring      
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:27638     FALSE:40462     FALSE:25109     FALSE:751       FALSE:598       FALSE:279      
 TRUE :15302     TRUE :2478      TRUE :17831     TRUE :423       TRUE :576       TRUE :1126     
 NA's :113319    NA's :113319    NA's :113319    NA's :155085    NA's :155085    NA's :154854   
                                                                                                
                                                                                                
                                                                                                
   curly         extensions         kids           perms         straightperms   background_music
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   
 FALSE:399       FALSE:570       FALSE:693       FALSE:745       FALSE:672       FALSE:6193      
 TRUE :1006      TRUE :835       TRUE :712       TRUE :660       TRUE :502       TRUE :1833      
 NA's :154854    NA's :154854    NA's :154854    NA's :154854    NA's :155085    NA's :148233    
                                                                                                 
                                                                                                 
                                                                                                 
     dj           jukebox         karaoke           live          no_music         video        
 Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical   Mode :logical  
 FALSE:6312      FALSE:6895      FALSE:7785      FALSE:6621      FALSE:8026      FALSE:7819     
 TRUE :1714      TRUE :1131      TRUE :241       TRUE :1405      NA's :148233    TRUE :207      
 NA's :148233    NA's :148233    NA's :148233    NA's :148233                    NA's :148233   
                                                                                                
                                                                                                
                                                                                                
bizatt$RestaurantsPriceRange2[ X[,"Restaurants"] ] %>% table(useNA="ifany")
.
    1     2     3     4  <NA> 
19013 24917  2845   537  4299 
grep("mex|ita",colnames(X),T, value=T)
 [1] "Italian"                "Mexican"                "Tex-Mex"               
 [4] "Hospitals"              "Vitamins & Supplements" "Rehabilitation Center" 
 [7] "Guitar Stores"          "Meditation Centers"     "Emergency Pet Hospital"
[10] "New Mexican Cuisine"   
italian = X[,"Italian"] & X[,"Restaurants"]
mexican = X[,"Mexican"] & X[,"Restaurants"]
c(sum(italian), sum(mexican), sum(italian & mexican))
[1] 4410 3913   25
bizatt$RestaurantsPriceRange2[ italian ] %>% table(useNA="ifany")
.
   1    2    3    4 <NA> 
 788 2698  519   70  335 
bizatt$RestaurantsPriceRange2[ mexican ] %>% table(useNA="ifany")
.
   1    2    3    4 <NA> 
2286 1388   41    5  193