install.packages("tidyverse")
Error in install.packages : Updating loaded packages
install.packages("tidyverse")
Error in install.packages : Updating loaded packages
install.packages("tidyverse")
Error in install.packages : Updating loaded packages
library(tidyverse)
package ‘tidyverse’ was built under R version 3.6.2Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
── Attaching packages ─────────────────────────────────── tidyverse 1.3.1 ──
✓ ggplot2 3.3.3     ✓ purrr   0.3.4
✓ tibble  3.1.0     ✓ dplyr   1.0.5
✓ tidyr   1.1.3     ✓ stringr 1.4.0
✓ readr   1.4.0     ✓ forcats 0.5.1
package ‘ggplot2’ was built under R version 3.6.2── Conflicts ────────────────────────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
sin(cos(exp(1)))
[1] -0.7905667
1 %>% exp %>% cos %>% sin
[1] -0.7905667
dat <- read_csv("https://github.com/Godoy/imdb-5000-movie-dataset/raw/master/data/movie_metadata.csv")
dat %>% summarise_all(function(x) {mean(x, na.rm=TRUE)})
dat %>% drop_na("color")
drop_na(dat, "color")
dat %>% drop_na("color") %>% pull("gross") %>% head(10)
dat %>% drop_na() %>% pull("gross")
   [1] 760505847 309404152 200074175 448130642  73058679 336530303 200807262
   [8] 458991599 301956980 330249062 200069408 168368427 423032628  89289910
  [15] 291021565 141614023 623279547 241063875 179020854 255108370 262030663
  [22] 105219735 258355354  70083519 218051260 658672302 407197282  65173160
  [29] 652177271 304360277 373377893 408992272 334185206 234360014 268488329
  [36] 402076689 245428137 234903076 202853933 172051787 191450875 116593191
  [43] 414984497 125320003 350034110 202351611 233914986 228756232  65171860
  [50] 144812796  90755643 101785482 352358779 317011114 237282182 130468626
  [57] 223806889 140080850 166112167 137850096  47375327 124051759 291709845
  [64] 154985087 533316061 292979556 198332128 318298180  73820094 113745408
  [71] 102176165 161087183 100289690 100189501  88246220 150167630 356454367
  [78] 362645141 312057433 155111815 241407328 208543795  38297305 259746958
  [85] 238371987  93417865 222487711 189412677    665426 102315545 217387997
  [92] 150350192 333130696 187991439 292568851 144512310 127490802 146405371
  [99] 281666058  63143812  60655503  76846624 320706665  46978995  89732035
 [106] 104383624 198539855 318759914  34293771 292000866 289994397 227946274
 [113] 256386216 206456431 206435493 205343774 179982968 177243721 179883016
 [120] 139259759 400736600 281492479 206360018 153629485 133375846 181015141
 [127] 114053579 119420252  83640426  79711678 195000874  61937495 124051759
 [134] 126597121 165230261 131564731 133382309  73103784  21379315  64459316
 [141]  34964818 111505642 133228348 216366733 160201106 118099659 201573391
 [148] 190418803  82161969 143523463 209364921 103400692 110332737 111110575
 [155]  65007045 257704099 403706375 176997107  31141074  31704416 107503316
 [162] 129734803 132122995 122512052  68642452  32131830 176636816 126930660
 [169]  93926386 292298923  63992328 134518390  52792307 183635922  83024900
 [176] 123207194  83348920 227137090 215395021 180191634 424645577 292298923
 [183] 177343675 234277056 138396624 149234747 118311368 101160529  77564037
 [190] 249358727  49551662  60522097 137748063 113733726 148337537 317557891
 [197]  33592415 305388685 337103873 217536138 131536019 214948780 209805005
 [204] 186830669 163192114 119412921  32694788 113165635 107285004 260031035
 [211] 186739919 215397307 182618434 131920333 124976634 115802596 108521835
 [218] 100685880 126464904  64736114  93050117  57637485  58607007  43929341
 [225]  30212620  76418654  89021735 380262555 310675583 289907418 132550960
 [232] 474544677 187165546  40911830  47952020 190871240 274084951  67155742
 [239]  56114221 250863268 155181732 125332007 113330342 125531634 186336103
 [246] 129995817 102608827  42776259  98780042 106369117 142614158  50026353
 [253]  66002193  85463309  71017784  48068396  61656849 134520804 313837577
 [260]  24004159  58183966 100446895 144795350  47396698 140015224 104374107
 [267] 228430993  35799026   6712451 101643008 187670866 132014112 261970615
 [274] 167007184 180011740 204843350  97030725 130127620 146282411  65452312
 [281] 148383780 119219978 101228120 162804648 100117603  89296573  85017401
 [288] 173005002  75030163  77222184  34964818 107515297  67631157  66862068
 [295]  57366262 116866727 184031112  54700065  27098580  55673333  40198710
 [302]  72660029  38120554  49392095  39292022  28772222  17010646  24985612
 [309]   4411102  35024475 130174897  10200000 202007640  77679638      9213
 [316]  58867694  59475623 108638745  86897182  63540020  95328937  50802661
 [323] 161317423 201148159  43982842 380838870 377019252 340478898  17176900
 [330] 131144183  23014504 181166115 176740650  71148699  67344392  22406362
 [337] 261437578  11000000  88761720 250147615 245823397  81557479 226138454
 [344] 155370362 124870275 196573705  58229120 125305545 132373442 120618403
 [351] 110416702 102515793 100012500 209019489  84037039  85884815  83077470
 [358] 100018837  78747585  78616689  75817994 100853835  73209340  72515360
 [365]  68558662  65653758  64685359  61355436     26871  60874615 143618384
 [372]  58220776  47474112  42877165  35168677  56114221  37567440  61644321
 [379]    190562 120147445 241688385 144512310 233630478 197992827 176049130
 [386] 172620724 183405771  20315324 148313048 127706877 126149655  66941559
 [393]  78009155  63224849 111544445 112703470 117144465  84303558 150832203
 [400]  51396781  47592825  50016394  57010853  62494975  46440491  44606335
 [407]  40048332  64933670  31494270  31111260 123307945 153288182  13401683
 [414] 137340146  43575716  80170146  75754670  33048353  34543701 242589580
 [421] 102981571 180965237 407999255 254455986 162831698 155019340 145771527
 [428] 140459099  53215979 158115031 133103929 133668525 130313314 124590960
 [435] 127968405 120136047 128200012 112225777 109993847 104054514 103028109
 [442] 101087161 101111837  95632614  94822707  92969824  91188905  90443603
 [449]  82226474  79363785  76081498  85707116  74329966 100169068  73215310
 [456]  80360866  69102910  65948711 169692572  60507228  56684819  50628009
 [463]  69772969  45356386  55350897  39442871  37899638  37754208  38542418
 [470]  34566746  32885565  36073232  21471685  20950820  19673424  19480739
 [477]  17593391  18318000  27356090  17473245  15131330  19406406   1891821
 [484]  23219748 170708996 422783777 103812241 119793567  92930005  67286731
 [491]  74158157 127083765   1339152  15071514  26000610 323505540  66462600
 [498] 368049635 306124059 229074524 193136719  35286428 157299717 134568845
 [505] 134006721 195329763 120776832 118823091  41814863  97360069 117698894
 [512] 162001186  77032279  73023275  68473360  66636385 160762022 103338338
 [519]  55808744  47379090  43426961  47000485  45434443  42044321  73661010
 [526]  41523271  37600435  39251128  83503161  34636443  22751979  30013346
 [533]  14567883   5409517  21009180  94999143 336029560  36381716  55585389
 [540]  36976367 107225164  70224196  51814190  47456450 148213377 112950721
 [547]  75600000  62647540 183132370  27796042  32616869  18947630 114195633
 [554] 144156464 227965690 436471036 244052771 152149590 141204016 162495848
 [561] 136448821 120523073 119654900  72660029 117541000 116643346 100614858
 [568]  42272747  80281096 219613391  78120196  98895417  70117571  83552429
 [575]  66257002  65012000  79883359  78031620  54222000  52474616  55942830
 [582]  40932372  38345403  37901509  48430355  30157016  28031250  33105600
 [589]  62321039  38509342  19076815  25093607  18990542  14294842  19819494
 [596]  13596911   7097125  37760080   5851188  25121291  18821279 118471320
 [603] 300523113  71069884 251501645  35324232  81257500    617840  29655590
 [610]  45045037  28965197  39380442  37516013  87704396  83892374   5932060
 [617] 216119491  43568507 182805123 176387405  33685268 182204440 171383253
 [624] 172071312 119412921 139225854 148775460 115731542 100468793  93771072
 [631] 100448498 115603980  90454043  84049211  70450000  69688384  70236496
 [638]  63695760  59617068  55637680  85911262  53846915  54758461  52397389
 [645]  38966057  42345531  36064910  33328051  32598931  28045540  37023395
 [652]  43532294  17218080  10014234  19059018   1987287  24407944  13750556
 [659]  31054924  43247140   2208939 213079163  19548064 356784000  25052000
 [666] 122012710     72413  58255287  77086030  65000000  32178777  15738632
 [673]  54116191 118153533 108012170 210592590 279167575 143151473 136801374
 [680] 135381507 167735396 121468960 106635996 102678089 125603360 101217900
 [687] 104148781  75573300  93375151 106126012  93307796  90646554 109176215
 [694]  82670733  82569532  81687587  80574010  75764085  90356857  75530832
 [701]  75370763 100003492  90341670  74540762  80033643  73648142  71844424
 [708]  75638743  66734992  75280058  64505912  77862546  61112916  88200225
 [715]  60573641  59035104  56702901  55994557  54910560  53789313  51045801
 [722]  50818750  50189179  50024083  50549107  56443482  62401264  47748610
 [729]  46975183  50807639  46611204 257756197  48472213  43060566  45996718
 [736]  43337279  37479778  40559930  36830057  36279230  42194060  43119879
 [743]  35096190  43290977  33927476  32122249  40076438  32940507  31670931
 [750]  30695227  32522352  26082914  29136626  26288320  26616590 623279547
 [757]  30063805  22518325  13082288  18208078  14218868     22451  31165421
 [764]  11802056  25472967  22362500  17281832  19781879   7605668   4535117
 [771]   4426297  10166502 363024263  12065985 350123553  80021740  48291624
 [778]  35231365  53715611  31199215  29580087  44665963  60128566  49875589
 [785]  60984028  36931089  51317350  28328132  51774002  25528495 113006880
 [792]  45860039 329691196 217326336 166225040 141600000 134218018 128769345
 [799] 177575142 105263257 104354205 107100855  98711404 100328194 101530738
 [806]  93815117  91400000 162586036  89706988  83000000  78745923  70098138
 [813]  66365290  66207920  63408614  58422650  56932305  68750000  68218041
 [820]  25040293  55747724  55473600  49994804  41609593  38553833  76137505
 [827]  34350553  34238611  34098563  33828318  33472850  31051126  35707327
 [834]  20550712  18573791  51225796  16264475  25857987  12870569  11466088
 [841]  16088610  51178893   6768055  39440655   6167817  81645152  69951824
 [848]   9483821  66676062  26838389  75604320 108200000   5660084   7221458
 [855]  70327868  58297830  57386369  45207112  62563543  33574332  73343413
 [862]  25031037  22843047   5755286 164435221  95720716 118683135 143704210
 [869] 110476776  80270227  36385763  37035845  34580635  42438300  23324666
 [876]  23020488  90567722  72601713 296623634 267652016  62453315 165500000
 [883] 153620822 218628680 147637474 135014968   2175312 126203320 126975169
 [890] 125548685 105807520 191616238 105264608  97680195 126088877  91030827
 [897] 150315155 127997349  88504640  81517441  81022333  79948113  88658172
 [904]  84244877  75367693  73701902  75605492  67823573  91439400  67128202
 [911]  70496802  60470220  58336565  66002004  54997476  55682070  52752475
 [918]  55092830  50815288  52822418  50150619  48745150  50007168  48154732
 [925]  48265581  46982632  44737059  56724080  44484065  47553512  42610000
 [932]  41482207  47105085  41256277  50740078  40203020  40905277  38590500
 [939]  39177541  39778599  37486138  38105077  35168395  32800000  33643461
 [946]  32741596  31874869  30306268  27667947  27067160  26616999  26536120
 [953]  26199517  25450527  25407250  23159305  24006726  20389967  19593740
 [960]  19118247  26442251  17114882  18472363  14131298  21557240  21283440
 [967]  10556196  16671505  10400000   9528092  10137232   9795017  20488579
 [974]  19445217   8355815  28837115   6471394   6291602  10706786   8742261
 [981]  43905746  21413502 124107476 197171806  31569268  66488090  95308367
 [988]  60652036   1206135  56607223  50173190  47095453  37879996  25900000
 [995]  53574088  89253340  37339525  60154431 103738726  69304264
 [ reached getOption("max.print") -- omitted 2756 entries ]
dat %>% drop_na %>% pull(color) %>% unique 
dat %>% drop_na %>% pull(color) %>% table() -> colors
colors['Black and White']
Black and White 
            124 
unname(colors)
[1]  124 3632
director_name
Error: object 'director_name' not found
dat %>% filter(director_name == "James Cameron",
               duration > 170) %>% select(duration, movie)
dat %>% filter(director_name == "James Cameron",
               duration > 170) %>% select(starts_with("movie"))
dat %>% group_by(director_name) %>% summarise(mean_duration=mean(duration),
                                              max_duration=max(duration),
                                              score=mean(imdb_score))
dat_new <- dat %>% mutate(facebook_likes_per_minute = cast_total_facebook_likes / duration)
dat %>% group_by(director_name) %>% mutate(number=n()) %>% select(director_name, number) %>% arrange(director_name)
dat %>% group_by(director_name) %>% 
  mutate(number=n()) %>% 
  filter(number >= 10) %>% 
  summarise(score=mean(imdb_score)) %>% 
  arrange(desc(score))
dat %>% rownames_to_column(var="idx")
newdat_wide <- data.frame(student=c("Alice", "Bob", "Claudia"),
                     algebra=c(4, 3, 5),
                     geometry=c(2, 3, 4),
                     calculus=c(1, 4, 3))
newdat_wide %>% pivot_longer(2:4, names_to="course", values_to="grade")
newdat_wide %>% pivot_longer(-1, names_to="course", values_to="grade")
newdat_wide %>% 
  pivot_longer(!student, names_to="course", values_to="grade") ->
  newdat_long
newdat_long
newdat_long %>% pivot_wider(names_from=course, values_from=grade)
dat_long <- data.frame(student=c("Alice", "Alice", "Bob"),
                       course=c("Algebra", "Algebra", "Geometry"),
                       grade=c(3, 2, 5))
dat_long %>% pivot_wider(names_from=course, values_from=grade, values_fn = mean)
dat %>% ggplot(aes(x=duration, y=log(gross))) +
  geom_point(alpha=0.3) + facet_wrap(color~.)

LS0tCnRpdGxlOiAiSW50cm8gdG8gdGlkeXZlcnNlIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikKYGBgCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgpgYGB7cn0Kc2luKGNvcyhleHAoMSkpKQpgYGAKYGBge3J9CjEgJT4lIGV4cCAlPiUgY29zICU+JSBzaW4KYGBgCmBgYHtyfQpkYXQgPC0gcmVhZF9jc3YoImh0dHBzOi8vZ2l0aHViLmNvbS9Hb2RveS9pbWRiLTUwMDAtbW92aWUtZGF0YXNldC9yYXcvbWFzdGVyL2RhdGEvbW92aWVfbWV0YWRhdGEuY3N2IikKYGBgCgpgYGB7cn0KZGF0ICU+JSBzdW1tYXJpc2VfYWxsKGZ1bmN0aW9uKHgpIHttZWFuKHgsIG5hLnJtPVRSVUUpfSkKYGBgCgpgYGB7cn0KZGF0ICU+JSBkcm9wX25hKCJjb2xvciIpCmBgYAoKYGBge3J9CmRyb3BfbmEoZGF0LCAiY29sb3IiKQpgYGAKCmBgYHtyfQpkYXQgJT4lIGRyb3BfbmEoImNvbG9yIikgJT4lIHB1bGwoImdyb3NzIikgJT4lIGhlYWQoMTApCmBgYAoKYGBge3J9CmRhdCAlPiUgZHJvcF9uYSgpICU+JSBwdWxsKCJncm9zcyIpCmBgYAoKYGBge3J9CmRhdCAlPiUgZHJvcF9uYSAlPiUgcHVsbChjb2xvcikgJT4lIHVuaXF1ZSAKYGBgCgpgYGB7cn0KZGF0ICU+JSBkcm9wX25hICU+JSBwdWxsKGNvbG9yKSAlPiUgdGFibGUoKSAtPiBjb2xvcnMKYGBgCgpgYGB7cn0KY29sb3JzWydCbGFjayBhbmQgV2hpdGUnXQpgYGAKYGBge3J9CnVubmFtZShjb2xvcnMpCmBgYAoKYGBge3J9CmRpcmVjdG9yX25hbWUKYGBgCmBgYHtyfQpkYXQgJT4lIGZpbHRlcihkaXJlY3Rvcl9uYW1lID09ICJKYW1lcyBDYW1lcm9uIiwKICAgICAgICAgICAgICAgZHVyYXRpb24gPiAxNzApICU+JSBzZWxlY3QoZHVyYXRpb24sIG1vdmllKQpgYGAKCmBgYHtyfQpkYXQgJT4lIGZpbHRlcihkaXJlY3Rvcl9uYW1lID09ICJKYW1lcyBDYW1lcm9uIiwKICAgICAgICAgICAgICAgZHVyYXRpb24gPiAxNzApICU+JSBzZWxlY3Qoc3RhcnRzX3dpdGgoIm1vdmllIikpCmBgYAoKYGBge3J9CmRhdCAlPiUgZ3JvdXBfYnkoZGlyZWN0b3JfbmFtZSkgJT4lIHN1bW1hcmlzZShtZWFuX2R1cmF0aW9uPW1lYW4oZHVyYXRpb24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X2R1cmF0aW9uPW1heChkdXJhdGlvbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29yZT1tZWFuKGltZGJfc2NvcmUpKQpgYGAKCgpgYGB7cn0KZGF0X25ldyA8LSBkYXQgJT4lIG11dGF0ZShmYWNlYm9va19saWtlc19wZXJfbWludXRlID0gY2FzdF90b3RhbF9mYWNlYm9va19saWtlcyAvIGR1cmF0aW9uKQpgYGAKYGBge3J9CmRhdCAlPiUgZ3JvdXBfYnkoZGlyZWN0b3JfbmFtZSkgJT4lIG11dGF0ZShudW1iZXI9bigpKSAlPiUgc2VsZWN0KGRpcmVjdG9yX25hbWUsIG51bWJlcikgJT4lIGFycmFuZ2UoZGlyZWN0b3JfbmFtZSkKYGBgCgpgYGB7cn0KZGF0ICU+JSBncm91cF9ieShkaXJlY3Rvcl9uYW1lKSAlPiUgCiAgbXV0YXRlKG51bWJlcj1uKCkpICU+JSAKICBmaWx0ZXIobnVtYmVyID49IDEwKSAlPiUgCiAgc3VtbWFyaXNlKHNjb3JlPW1lYW4oaW1kYl9zY29yZSkpICU+JSAKICBhcnJhbmdlKGRlc2Moc2NvcmUpKQpgYGAKCmBgYHtyfQpkYXQgJT4lIHJvd25hbWVzX3RvX2NvbHVtbih2YXI9ImlkeCIpCmBgYAoKYGBge3J9Cm5ld2RhdF93aWRlIDwtIGRhdGEuZnJhbWUoc3R1ZGVudD1jKCJBbGljZSIsICJCb2IiLCAiQ2xhdWRpYSIpLAogICAgICAgICAgICAgICAgICAgICBhbGdlYnJhPWMoNCwgMywgNSksCiAgICAgICAgICAgICAgICAgICAgIGdlb21ldHJ5PWMoMiwgMywgNCksCiAgICAgICAgICAgICAgICAgICAgIGNhbGN1bHVzPWMoMSwgNCwgMykpCmBgYAoKYGBge3J9Cm5ld2RhdF93aWRlICU+JSBwaXZvdF9sb25nZXIoMjo0LCBuYW1lc190bz0iY291cnNlIiwgdmFsdWVzX3RvPSJncmFkZSIpCmBgYAoKYGBge3J9Cm5ld2RhdF93aWRlICU+JSBwaXZvdF9sb25nZXIoLTEsIG5hbWVzX3RvPSJjb3Vyc2UiLCB2YWx1ZXNfdG89ImdyYWRlIikKYGBgCgpgYGB7cn0KbmV3ZGF0X3dpZGUgJT4lIAogIHBpdm90X2xvbmdlcighc3R1ZGVudCwgbmFtZXNfdG89ImNvdXJzZSIsIHZhbHVlc190bz0iZ3JhZGUiKSAtPgogIG5ld2RhdF9sb25nCmBgYAoKYGBge3J9Cm5ld2RhdF9sb25nCmBgYApgYGB7cn0KbmV3ZGF0X2xvbmcgJT4lIHBpdm90X3dpZGVyKG5hbWVzX2Zyb209Y291cnNlLCB2YWx1ZXNfZnJvbT1ncmFkZSkKYGBgCgpgYGB7cn0KZGF0X2xvbmcgPC0gZGF0YS5mcmFtZShzdHVkZW50PWMoIkFsaWNlIiwgIkFsaWNlIiwgIkJvYiIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvdXJzZT1jKCJBbGdlYnJhIiwgIkFsZ2VicmEiLCAiR2VvbWV0cnkiKSwKICAgICAgICAgICAgICAgICAgICAgICBncmFkZT1jKDMsIDIsIDUpKQpgYGAKCmBgYHtyfQpkYXRfbG9uZyAlPiUgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbT1jb3Vyc2UsIHZhbHVlc19mcm9tPWdyYWRlLCB2YWx1ZXNfZm4gPSBtZWFuKQpgYGAKCmBgYHtyfQpkYXQgJT4lIGdncGxvdChhZXMoeD1kdXJhdGlvbiwgeT1sb2coZ3Jvc3MpKSkgKwogIGdlb21fcG9pbnQoYWxwaGE9MC4zKSArIGZhY2V0X3dyYXAoY29sb3IgfiAuKQpgYGA=