• R/O
  • SSH

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版f6b0276471cc646ec99f7a1f8808d859faf9f481 (tree)
时间2017-03-21 07:26:17
作者Lorenzo Isella <lorenzo.isella@gmai...>
CommiterLorenzo Isella

Log Message

I added a more sophisticated example.

更改概述

差异

diff -r 5469297872fb -r f6b0276471cc R-codes/riverplot.R
--- a/R-codes/riverplot.R Sun Mar 19 21:52:48 2017 +0100
+++ b/R-codes/riverplot.R Mon Mar 20 23:26:17 2017 +0100
@@ -4,101 +4,105 @@
44 library(sankey)
55 library(dplyr)
66
7-## tab <- readRDS("movement_data.RDS")
7+
8+source("/home/lorenzo/myprojects-hg/R-codes/stat_lib.R")
89
910
10-tab <- structure(list(home = c("AU", "RU", "AU", "AU", "AR", "AU", "UY",
11-"IN", "US", "FR", "FR", "RU", "ES", "BE", "FR", "ES", "ES", "US",
12-"DE", "CA", "PL", "IT", "FR", "AU", "SE", "UK", "SE", "PL", "FR",
13-"NL", "ES", "NL", "ES", "BR", "FR", "NL", "JP", "HU", "DE", "AU",
14-"ES", "IN", "CH", "PL", "FR", "DE", "FR", "FR", "HU", "ES", "IT",
15-"UK", "FR", "SE", "DE", "FR", "DE", "ES", "NL", "UK", "ES", "CH",
16-"SE", "DE", "FR", "ES", "US", "DE", "AU", "FR", "IT", "IT", "JP",
17-"ES", "CH", "ES", "AR", "HU", "AT", "ES", "FR", "IN", "AU", "NZ",
18-"UK", "AU", "CA", "ES", "PL", "IN", "UK", "US", "FR", "BE", "DE",
19-"ES", "PL", "IE", "BE", "FR", "CH", "RU", "HU", "ES", "FR", "EL",
20-"IE", "UK", "SI", "DE", "DE", "IT", "EG", "ES", "IT", "IT", "AT",
21-"ES", "IT", "ES", "ES", "PL", "FR", "IT", "IE", "DE", "NL", "HU",
22-"CA", "MD", "DE", "CU", "DE", "PT", "NL", "PL", "DE", "DE", "DE",
23-"PL", "FR", "AR", "NL", "ES", "EL", "FR", "ES", "DE", "NL", "ES",
24-"DE", "ES", "US", "EL", "FR", "ES", "FR", "UK", "IT", "JP", "CA",
25-"US", "FR", "IE", "IT", "CZ", "ES", "DE", "AU", "TR", "FR", "FR",
26-"CH", "SE", "FR", "FR", "BE", "BE", "US", "IT", "IT", "FI", "DE",
27-"NL", "IL", "US", "FR", "FI", "IN", "FI", "SK", "DE", "ES", "UK",
28-"UK", "FR", "DE", "SK", "ES", "ES", "DE", "FR", "DE", "JP", "FR",
29-"US", "ES", "SE", "US", "ES", "UK", "SE", "MX", "NL", "CA", "BE",
30-"IE", "UK", "FR", "PT", "ES", "CH", "SE", "IT", "HU", "US", "UK",
31-"NL", "AT", "ES", "CA", "ES", "FR", "NL", "DE", "IN", "RU", "NL",
32-"FR", "NL", "ES", "US", "SE", "FR", "FR", "IL", "US", "DE", "US",
33-"IT", "AU", "DE", "IE", "AU", "RU", "JP", "FR", "UK", "DE", "AR",
34-"FR", "ES", "SK", "IT", "SE"), host = c("DE", "FR", "UK", "UK",
35-"CH", "IE", "IT", "FI", "DE", "FR", "FR", "RU", "ES", "BE", "FR",
36-"FR", "DE", "UK", "UK", "DK", "UK", "FR", "DE", "SE", "UK", "DE",
37-"UK", "SE", "BE", "NL", "IT", "NO", "CH", "ES", "FR", "UK", "UK",
38-"FR", "UK", "SE", "UK", "CH", "UK", "DE", "SE", "UK", "FR", "DE",
39-"PT", "UK", "FR", "SE", "UK", "UK", "ES", "UK", "SE", "UK", "NL",
40-"DE", "UK", "DE", "ES", "DK", "CH", "ES", "FR", "UK", "UK", "UK",
41-"ES", "IT", "UK", "UK", "UK", "UK", "BE", "FR", "BE", "UK", "FR",
42-"UK", "ES", "NO", "ES", "FR", "UK", "DE", "UK", "UK", "ES", "UK",
43-"UK", "CH", "IE", "UK", "DE", "UK", "NL", "UK", "UK", "CZ", "SE",
44-"UK", "UK", "DE", "DK", "UK", "ES", "IL", "UK", "CH", "FI", "UK",
45-"FR", "UK", "DE", "ES", "FR", "UK", "DE", "UK", "DE", "FR", "UK",
46-"CH", "UK", "FI", "FR", "FR", "UK", "IT", "UK", "PT", "CH", "ES",
47-"CH", "NO", "CH", "UK", "CH", "UK", "CH", "CH", "EL", "CH", "UK",
48-"UK", "UK", "UK", "FR", "UK", "CH", "DE", "UK", "IE", "UK", "DK",
49-"UK", "ES", "UK", "FR", "FR", "UK", "UK", "SI", "ES", "UK", "SE",
50-"UK", "CH", "UK", "DE", "CH", "ES", "UK", "CH", "PT", "FR", "UK",
51-"CH", "UK", "CH", "UK", "UK", "UK", "UK", "CH", "UK", "DE", "DE",
52-"FR", "UK", "UK", "ES", "UK", "DE", "CZ", "NL", "UK", "CH", "IE",
53-"UK", "UK", "DE", "UK", "UK", "UK", "UK", "ES", "CA", "ES", "UK",
54-"DE", "SE", "CH", "ES", "FR", "UK", "IE", "UK", "UK", "CH", "IT",
55-"UK", "FR", "NL", "NO", "AT", "ES", "UK", "UK", "CH", "FR", "UK",
56-"DE", "NL", "ES", "DK", "UK", "UK", "SE", "DE", "DE", "FR", "FR",
57-"CH", "UK", "NL", "ES", "UK", "UK", "UK", "UK", "UK", "UK", "FR",
58-"FR", "UK", "SI", "ES", "DK", "NL", "UK", "UK"), author = c(2,
59-4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 26,
60-27, 28, 29, 30, 31, 32, 36, 37, 39, 40, 41, 42, 43, 47, 48, 50,
61-51, 52, 55, 56, 58, 60, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72,
62-73, 75, 77, 79, 80, 81, 82, 84, 85, 86, 88, 89, 90, 91, 92, 93,
63-96, 99, 101, 102, 103, 104, 108, 109, 110, 111, 112, 113, 114,
64-115, 116, 118, 119, 120, 122, 123, 125, 126, 128, 129, 130, 131,
65-134, 136, 138, 139, 140, 141, 142, 145, 147, 148, 149, 150, 152,
66-154, 156, 157, 160, 161, 164, 165, 166, 167, 169, 171, 172, 173,
67-174, 175, 177, 178, 182, 183, 184, 186, 190, 192, 193, 194, 195,
68-196, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212,
69-213, 214, 216, 217, 221, 222, 223, 224, 225, 226, 227, 229, 232,
70-233, 234, 235, 236, 237, 238, 240, 241, 242, 244, 245, 247, 248,
71-250, 251, 252, 254, 255, 258, 259, 261, 262, 266, 267, 270, 272,
72-273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 287, 288,
73-289, 290, 291, 292, 293, 294, 295, 296, 298, 300, 303, 304, 305,
74-307, 308, 309, 310, 312, 313, 314, 316, 317, 318, 319, 320, 327,
75-328, 329, 330, 331, 332, 334, 336, 337, 339, 340, 341, 342, 343,
76-344, 346, 347, 348, 349, 350, 352, 355, 357, 358, 359, 362, 363,
77-364, 365, 366, 368, 369, 372, 374, 376, 377, 378, 379, 380, 381,
78-383, 385, 386, 387)), .Names = c("home", "host", "author"), row.names = c(2L,
79-3L, 4L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L,
80-18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 28L, 29L, 30L, 31L,
81-32L, 33L, 34L, 35L, 36L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L,
82-46L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L,
83-61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L,
84-74L, 75L, 76L, 77L, 78L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L,
85-88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L,
86-101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L,
87-112L, 113L, 114L, 115L, 117L, 118L, 119L, 120L, 121L, 122L, 123L,
88-125L, 126L, 127L, 128L, 129L, 130L, 131L, 132L, 133L, 134L, 135L,
89-136L, 137L, 138L, 139L, 140L, 141L, 142L, 143L, 144L, 145L, 146L,
90-147L, 148L, 150L, 151L, 152L, 153L, 154L, 155L, 156L, 158L, 159L,
91-160L, 161L, 162L, 163L, 164L, 165L, 166L, 167L, 170L, 171L, 172L,
92-173L, 174L, 175L, 176L, 177L, 178L, 179L, 180L, 181L, 182L, 183L,
93-184L, 185L, 186L, 187L, 188L, 189L, 190L, 191L, 192L, 194L, 195L,
94-196L, 197L, 198L, 199L, 200L, 201L, 202L, 203L, 204L, 205L, 206L,
95-207L, 208L, 210L, 211L, 212L, 213L, 214L, 215L, 216L, 217L, 218L,
96-219L, 220L, 222L, 223L, 224L, 225L, 226L, 227L, 228L, 229L, 231L,
97-232L, 233L, 235L, 236L, 237L, 238L, 239L, 240L, 241L, 242L, 243L,
98-244L, 245L, 246L, 247L, 248L, 249L, 250L, 251L, 252L, 253L, 254L,
99-255L, 256L, 257L, 258L, 259L, 260L, 261L, 262L, 263L, 264L, 265L,
100-266L, 267L, 268L, 269L, 270L, 271L, 272L, 273L, 274L, 275L, 276L,
101-277L, 278L, 279L, 280L, 282L, 283L, 284L), class = "data.frame")
11+tab <- readRDS("movement_data.RDS")
12+
13+
14+## tab <- structure(list(home = c("AU", "RU", "AU", "AU", "AR", "AU", "UY",
15+## "IN", "US", "FR", "FR", "RU", "ES", "BE", "FR", "ES", "ES", "US",
16+## "DE", "CA", "PL", "IT", "FR", "AU", "SE", "UK", "SE", "PL", "FR",
17+## "NL", "ES", "NL", "ES", "BR", "FR", "NL", "JP", "HU", "DE", "AU",
18+## "ES", "IN", "CH", "PL", "FR", "DE", "FR", "FR", "HU", "ES", "IT",
19+## "UK", "FR", "SE", "DE", "FR", "DE", "ES", "NL", "UK", "ES", "CH",
20+## "SE", "DE", "FR", "ES", "US", "DE", "AU", "FR", "IT", "IT", "JP",
21+## "ES", "CH", "ES", "AR", "HU", "AT", "ES", "FR", "IN", "AU", "NZ",
22+## "UK", "AU", "CA", "ES", "PL", "IN", "UK", "US", "FR", "BE", "DE",
23+## "ES", "PL", "IE", "BE", "FR", "CH", "RU", "HU", "ES", "FR", "EL",
24+## "IE", "UK", "SI", "DE", "DE", "IT", "EG", "ES", "IT", "IT", "AT",
25+## "ES", "IT", "ES", "ES", "PL", "FR", "IT", "IE", "DE", "NL", "HU",
26+## "CA", "MD", "DE", "CU", "DE", "PT", "NL", "PL", "DE", "DE", "DE",
27+## "PL", "FR", "AR", "NL", "ES", "EL", "FR", "ES", "DE", "NL", "ES",
28+## "DE", "ES", "US", "EL", "FR", "ES", "FR", "UK", "IT", "JP", "CA",
29+## "US", "FR", "IE", "IT", "CZ", "ES", "DE", "AU", "TR", "FR", "FR",
30+## "CH", "SE", "FR", "FR", "BE", "BE", "US", "IT", "IT", "FI", "DE",
31+## "NL", "IL", "US", "FR", "FI", "IN", "FI", "SK", "DE", "ES", "UK",
32+## "UK", "FR", "DE", "SK", "ES", "ES", "DE", "FR", "DE", "JP", "FR",
33+## "US", "ES", "SE", "US", "ES", "UK", "SE", "MX", "NL", "CA", "BE",
34+## "IE", "UK", "FR", "PT", "ES", "CH", "SE", "IT", "HU", "US", "UK",
35+## "NL", "AT", "ES", "CA", "ES", "FR", "NL", "DE", "IN", "RU", "NL",
36+## "FR", "NL", "ES", "US", "SE", "FR", "FR", "IL", "US", "DE", "US",
37+## "IT", "AU", "DE", "IE", "AU", "RU", "JP", "FR", "UK", "DE", "AR",
38+## "FR", "ES", "SK", "IT", "SE"), host = c("DE", "FR", "UK", "UK",
39+## "CH", "IE", "IT", "FI", "DE", "FR", "FR", "RU", "ES", "BE", "FR",
40+## "FR", "DE", "UK", "UK", "DK", "UK", "FR", "DE", "SE", "UK", "DE",
41+## "UK", "SE", "BE", "NL", "IT", "NO", "CH", "ES", "FR", "UK", "UK",
42+## "FR", "UK", "SE", "UK", "CH", "UK", "DE", "SE", "UK", "FR", "DE",
43+## "PT", "UK", "FR", "SE", "UK", "UK", "ES", "UK", "SE", "UK", "NL",
44+## "DE", "UK", "DE", "ES", "DK", "CH", "ES", "FR", "UK", "UK", "UK",
45+## "ES", "IT", "UK", "UK", "UK", "UK", "BE", "FR", "BE", "UK", "FR",
46+## "UK", "ES", "NO", "ES", "FR", "UK", "DE", "UK", "UK", "ES", "UK",
47+## "UK", "CH", "IE", "UK", "DE", "UK", "NL", "UK", "UK", "CZ", "SE",
48+## "UK", "UK", "DE", "DK", "UK", "ES", "IL", "UK", "CH", "FI", "UK",
49+## "FR", "UK", "DE", "ES", "FR", "UK", "DE", "UK", "DE", "FR", "UK",
50+## "CH", "UK", "FI", "FR", "FR", "UK", "IT", "UK", "PT", "CH", "ES",
51+## "CH", "NO", "CH", "UK", "CH", "UK", "CH", "CH", "EL", "CH", "UK",
52+## "UK", "UK", "UK", "FR", "UK", "CH", "DE", "UK", "IE", "UK", "DK",
53+## "UK", "ES", "UK", "FR", "FR", "UK", "UK", "SI", "ES", "UK", "SE",
54+## "UK", "CH", "UK", "DE", "CH", "ES", "UK", "CH", "PT", "FR", "UK",
55+## "CH", "UK", "CH", "UK", "UK", "UK", "UK", "CH", "UK", "DE", "DE",
56+## "FR", "UK", "UK", "ES", "UK", "DE", "CZ", "NL", "UK", "CH", "IE",
57+## "UK", "UK", "DE", "UK", "UK", "UK", "UK", "ES", "CA", "ES", "UK",
58+## "DE", "SE", "CH", "ES", "FR", "UK", "IE", "UK", "UK", "CH", "IT",
59+## "UK", "FR", "NL", "NO", "AT", "ES", "UK", "UK", "CH", "FR", "UK",
60+## "DE", "NL", "ES", "DK", "UK", "UK", "SE", "DE", "DE", "FR", "FR",
61+## "CH", "UK", "NL", "ES", "UK", "UK", "UK", "UK", "UK", "UK", "FR",
62+## "FR", "UK", "SI", "ES", "DK", "NL", "UK", "UK"), author = c(2,
63+## 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 26,
64+## 27, 28, 29, 30, 31, 32, 36, 37, 39, 40, 41, 42, 43, 47, 48, 50,
65+## 51, 52, 55, 56, 58, 60, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72,
66+## 73, 75, 77, 79, 80, 81, 82, 84, 85, 86, 88, 89, 90, 91, 92, 93,
67+## 96, 99, 101, 102, 103, 104, 108, 109, 110, 111, 112, 113, 114,
68+## 115, 116, 118, 119, 120, 122, 123, 125, 126, 128, 129, 130, 131,
69+## 134, 136, 138, 139, 140, 141, 142, 145, 147, 148, 149, 150, 152,
70+## 154, 156, 157, 160, 161, 164, 165, 166, 167, 169, 171, 172, 173,
71+## 174, 175, 177, 178, 182, 183, 184, 186, 190, 192, 193, 194, 195,
72+## 196, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212,
73+## 213, 214, 216, 217, 221, 222, 223, 224, 225, 226, 227, 229, 232,
74+## 233, 234, 235, 236, 237, 238, 240, 241, 242, 244, 245, 247, 248,
75+## 250, 251, 252, 254, 255, 258, 259, 261, 262, 266, 267, 270, 272,
76+## 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 287, 288,
77+## 289, 290, 291, 292, 293, 294, 295, 296, 298, 300, 303, 304, 305,
78+## 307, 308, 309, 310, 312, 313, 314, 316, 317, 318, 319, 320, 327,
79+## 328, 329, 330, 331, 332, 334, 336, 337, 339, 340, 341, 342, 343,
80+## 344, 346, 347, 348, 349, 350, 352, 355, 357, 358, 359, 362, 363,
81+## 364, 365, 366, 368, 369, 372, 374, 376, 377, 378, 379, 380, 381,
82+## 383, 385, 386, 387)), .Names = c("home", "host", "author"), row.names = c(2L,
83+## 3L, 4L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L,
84+## 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 28L, 29L, 30L, 31L,
85+## 32L, 33L, 34L, 35L, 36L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L,
86+## 46L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L,
87+## 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L,
88+## 74L, 75L, 76L, 77L, 78L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L,
89+## 88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L,
90+## 101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L,
91+## 112L, 113L, 114L, 115L, 117L, 118L, 119L, 120L, 121L, 122L, 123L,
92+## 125L, 126L, 127L, 128L, 129L, 130L, 131L, 132L, 133L, 134L, 135L,
93+## 136L, 137L, 138L, 139L, 140L, 141L, 142L, 143L, 144L, 145L, 146L,
94+## 147L, 148L, 150L, 151L, 152L, 153L, 154L, 155L, 156L, 158L, 159L,
95+## 160L, 161L, 162L, 163L, 164L, 165L, 166L, 167L, 170L, 171L, 172L,
96+## 173L, 174L, 175L, 176L, 177L, 178L, 179L, 180L, 181L, 182L, 183L,
97+## 184L, 185L, 186L, 187L, 188L, 189L, 190L, 191L, 192L, 194L, 195L,
98+## 196L, 197L, 198L, 199L, 200L, 201L, 202L, 203L, 204L, 205L, 206L,
99+## 207L, 208L, 210L, 211L, 212L, 213L, 214L, 215L, 216L, 217L, 218L,
100+## 219L, 220L, 222L, 223L, 224L, 225L, 226L, 227L, 228L, 229L, 231L,
101+## 232L, 233L, 235L, 236L, 237L, 238L, 239L, 240L, 241L, 242L, 243L,
102+## 244L, 245L, 246L, 247L, 248L, 249L, 250L, 251L, 252L, 253L, 254L,
103+## 255L, 256L, 257L, 258L, 259L, 260L, 261L, 262L, 263L, 264L, 265L,
104+## 266L, 267L, 268L, 269L, 270L, 271L, 272L, 273L, 274L, 275L, 276L,
105+## 277L, 278L, 279L, 280L, 282L, 283L, 284L), class = "data.frame")
102106
103107
104108
@@ -132,54 +136,54 @@
132136 tab_un$weight <- weight$n
133137
134138
135-## classification <- read.csv("country-classification.csv")
139+classification <- read.csv("country-classification.csv")
136140
137141
138-classification <- structure(list(Country.codes = structure(c(25L, 57L, 22L, 4L,
139-40L, 35L, 15L, 16L, 8L, 2L, 21L, 49L, 29L, 41L, 17L, 34L, 36L,
140-43L, 14L, 52L, 24L, 51L, 23L, 45L, 5L, 38L, 13L, 19L, 30L, 20L,
141-44L, 1L, 3L, 6L, 7L, 9L, 10L, 12L, 18L, 27L, 26L, 28L, 31L, 32L,
142-33L, 39L, 42L, 46L, 53L, 54L, 55L, 56L, 58L, 59L, 11L, 37L, 50L,
143-48L, 47L), .Label = c("AR", "AT", "AU", "BE", "BG", "BR", "CA",
144-"CH", "CL", "CN", "CU", "CV", "CY", "CZ", "DE", "DK", "EE", "EG",
145-"EL", "ES", "FI", "FR", "HR", "HU", "IE", "IL", "IN", "IR", "IS",
146-"IT", "JP", "KH", "KR", "LT", "LU", "LV", "MD", "MT", "MX", "NL",
147-"NO", "NZ", "PL", "PT", "RO", "RU", "SA", "SB", "SE", "SGP",
148-"SI", "SK", "SY", "TN", "TR", "UA", "UK", "US", "UY"), class = "factor"),
149- Country.Name = structure(c(27L, 57L, 20L, 4L, 37L, 33L, 21L,
150- 16L, 52L, 3L, 19L, 51L, 24L, 39L, 18L, 32L, 31L, 40L, 15L,
151- 46L, 23L, 47L, 11L, 42L, 6L, 34L, 14L, 22L, 29L, 50L, 41L,
152- 1L, 2L, 5L, 8L, 9L, 10L, 13L, 17L, 25L, 28L, 26L, 30L, 7L,
153- 49L, 35L, 38L, 43L, 53L, 54L, 55L, 56L, 59L, 58L, 12L, 36L,
154- 45L, 44L, 48L), .Label = c("ARGENTINA", "AUSTRALIA", "AUSTRIA",
155- "BELGIUM", "BRAZIL", "BULGARIA", "CAMBODIA", "CANADA", "CHILE",
156- "CHINA", "CROATIA", "CUBA", "CV", "CYPRUS", "CZECH REPUBLIC",
157- "DENMARK", "EGYPT", "ESTONIA", "FINLAND", "FRANCE", "GERMANY",
158- "GREECE", "HUNGARY", "ICELAND", "INDIA", "IRAN", "IRELAND",
159- "ISRAEL", "ITALY", "JAPAN", "LATVIA", "LITHUANIA", "LUXEMBOURG",
160- "MALTA", "MEXICO", "MOLDOVA", "NETHERLANDS", "NEW ZEALAND",
161- "NORWAY", "POLAND", "PORTUGAL", "ROMANIA", "RUSSIA", "SERBIA",
162- "SINGAPORE", "SLOVAKIA", "SLOVENIA", "SOUTH AFRICA", "SOUTH KOREA",
163- "SPAIN", "SWEDEN", "SWITZERLAND", "SYRIA", "TUNISIA", "TURKEY",
164- "UKRAINE", "UNITED KINGDOM", "URUGUAY", "USA"), class = "factor"),
165- Country.codes.1 = structure(c(25L, 57L, 22L, 4L, 40L, 35L,
166- 15L, 16L, 8L, 2L, 21L, 49L, 29L, 41L, 17L, 34L, 36L, 43L,
167- 14L, 52L, 24L, 51L, 23L, 45L, 5L, 38L, 13L, 19L, 30L, 20L,
168- 44L, 1L, 3L, 6L, 7L, 9L, 10L, 12L, 18L, 27L, 26L, 28L, 31L,
169- 32L, 33L, 39L, 42L, 46L, 53L, 54L, 55L, 56L, 58L, 59L, 11L,
170- 37L, 50L, 48L, 47L), .Label = c("AR", "AT", "AU", "BE", "BG",
171- "BR", "CA", "CH", "CL", "CN", "CU", "CV", "CY", "CZ", "DE",
172- "DK", "EE", "EG", "EL", "ES", "FI", "FR", "HR", "HU", "IE",
173- "IL", "IN", "IR", "IS", "IT", "JP", "KH", "KR", "LT", "LU",
174- "LV", "MD", "MT", "MX", "NL", "NO", "NZ", "PL", "PT", "RO",
175- "RU", "SA", "SB", "SE", "SGP", "SI", "SK", "SY", "TN", "TR",
176- "UA", "UK", "US", "UY"), class = "factor"), Region.code = c(1L,
177- 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
178- 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
179- 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
180- 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L)), .Names = c("Country.codes",
181-"Country.Name", "Country.codes.1", "Region.code"), class = "data.frame", row.names = c(NA,
182--59L))
142+## classification <- structure(list(Country.codes = structure(c(25L, 57L, 22L, 4L,
143+## 40L, 35L, 15L, 16L, 8L, 2L, 21L, 49L, 29L, 41L, 17L, 34L, 36L,
144+## 43L, 14L, 52L, 24L, 51L, 23L, 45L, 5L, 38L, 13L, 19L, 30L, 20L,
145+## 44L, 1L, 3L, 6L, 7L, 9L, 10L, 12L, 18L, 27L, 26L, 28L, 31L, 32L,
146+## 33L, 39L, 42L, 46L, 53L, 54L, 55L, 56L, 58L, 59L, 11L, 37L, 50L,
147+## 48L, 47L), .Label = c("AR", "AT", "AU", "BE", "BG", "BR", "CA",
148+## "CH", "CL", "CN", "CU", "CV", "CY", "CZ", "DE", "DK", "EE", "EG",
149+## "EL", "ES", "FI", "FR", "HR", "HU", "IE", "IL", "IN", "IR", "IS",
150+## "IT", "JP", "KH", "KR", "LT", "LU", "LV", "MD", "MT", "MX", "NL",
151+## "NO", "NZ", "PL", "PT", "RO", "RU", "SA", "SB", "SE", "SGP",
152+## "SI", "SK", "SY", "TN", "TR", "UA", "UK", "US", "UY"), class = "factor"),
153+## Country.Name = structure(c(27L, 57L, 20L, 4L, 37L, 33L, 21L,
154+## 16L, 52L, 3L, 19L, 51L, 24L, 39L, 18L, 32L, 31L, 40L, 15L,
155+## 46L, 23L, 47L, 11L, 42L, 6L, 34L, 14L, 22L, 29L, 50L, 41L,
156+## 1L, 2L, 5L, 8L, 9L, 10L, 13L, 17L, 25L, 28L, 26L, 30L, 7L,
157+## 49L, 35L, 38L, 43L, 53L, 54L, 55L, 56L, 59L, 58L, 12L, 36L,
158+## 45L, 44L, 48L), .Label = c("ARGENTINA", "AUSTRALIA", "AUSTRIA",
159+## "BELGIUM", "BRAZIL", "BULGARIA", "CAMBODIA", "CANADA", "CHILE",
160+## "CHINA", "CROATIA", "CUBA", "CV", "CYPRUS", "CZECH REPUBLIC",
161+## "DENMARK", "EGYPT", "ESTONIA", "FINLAND", "FRANCE", "GERMANY",
162+## "GREECE", "HUNGARY", "ICELAND", "INDIA", "IRAN", "IRELAND",
163+## "ISRAEL", "ITALY", "JAPAN", "LATVIA", "LITHUANIA", "LUXEMBOURG",
164+## "MALTA", "MEXICO", "MOLDOVA", "NETHERLANDS", "NEW ZEALAND",
165+## "NORWAY", "POLAND", "PORTUGAL", "ROMANIA", "RUSSIA", "SERBIA",
166+## "SINGAPORE", "SLOVAKIA", "SLOVENIA", "SOUTH AFRICA", "SOUTH KOREA",
167+## "SPAIN", "SWEDEN", "SWITZERLAND", "SYRIA", "TUNISIA", "TURKEY",
168+## "UKRAINE", "UNITED KINGDOM", "URUGUAY", "USA"), class = "factor"),
169+## Country.codes.1 = structure(c(25L, 57L, 22L, 4L, 40L, 35L,
170+## 15L, 16L, 8L, 2L, 21L, 49L, 29L, 41L, 17L, 34L, 36L, 43L,
171+## 14L, 52L, 24L, 51L, 23L, 45L, 5L, 38L, 13L, 19L, 30L, 20L,
172+## 44L, 1L, 3L, 6L, 7L, 9L, 10L, 12L, 18L, 27L, 26L, 28L, 31L,
173+## 32L, 33L, 39L, 42L, 46L, 53L, 54L, 55L, 56L, 58L, 59L, 11L,
174+## 37L, 50L, 48L, 47L), .Label = c("AR", "AT", "AU", "BE", "BG",
175+## "BR", "CA", "CH", "CL", "CN", "CU", "CV", "CY", "CZ", "DE",
176+## "DK", "EE", "EG", "EL", "ES", "FI", "FR", "HR", "HU", "IE",
177+## "IL", "IN", "IR", "IS", "IT", "JP", "KH", "KR", "LT", "LU",
178+## "LV", "MD", "MT", "MX", "NL", "NO", "NZ", "PL", "PT", "RO",
179+## "RU", "SA", "SB", "SE", "SGP", "SI", "SK", "SY", "TN", "TR",
180+## "UA", "UK", "US", "UY"), class = "factor"), Region.code = c(1L,
181+## 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
182+## 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
183+## 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
184+## 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L)), .Names = c("Country.codes",
185+## "Country.Name", "Country.codes.1", "Region.code"), class = "data.frame", row.names = c(NA,
186+## -59L))
183187
184188
185189 edges <- select(tab_un, c(home, host))
@@ -200,11 +204,21 @@
200204
201205 nodes$size <- c(as.numeric(nodes.out), as.numeric(nodes.in))
202206
203-res <- make_sankey(nodes=nodes, edges = edges)
207+## res <- make_sankey(nodes=nodes, edges = edges)
204208
205-pdf("riverplot.pdf")
206-sankey(res)
207-dev.off()
209+## pdf("riverplot.pdf")
210+## sankey(res)
211+## dev.off()
212+
213+
214+nodes.country <- nodes
215+edges.country <- edges
216+
217+edges.country$host <- substrRight(edges.country$host, 2)
218+
219+edges.country$home <- substrRight(edges.country$home, 2)
220+
221+
208222
209223 #####################################################################
210224 #####################################################################
@@ -241,6 +255,27 @@
241255 tab$host[tab$host %in% sel_row ] <- "RoW"
242256
243257
258+edges.country$home <- edges.country$host
259+
260+
261+edges.country$home[edges.country$home %in% sel_fp ] <- "FP"
262+edges.country$home[edges.country$home %in% sel_esif ] <- "ESIF"
263+edges.country$home[edges.country$home %in% sel_row ] <- "RoW"
264+
265+
266+### the starting point of the country edges is the *host* country
267+## because I am not representing a movement of people from a place to another
268+## but just breaking up the macro destination area by country.
269+
270+edges.country$home <- paste("to",edges.country$home, sep=" " )
271+
272+
273+
274+## what matters is the total flow that reaches every country, so I aggregate the
275+## edges.country every time the couple home-host country is the same.
276+
277+edges.country <- aggregate(weight ~ home + host, data=edges.country, sum)
278+
244279
245280 nodes.out <- table(tab$home)
246281 nodes.in <- table(tab$host)
@@ -301,9 +336,55 @@
301336 dev.off()
302337
303338
339+#########################################################################
340+#########################################################################
341+#########################################################################
342+#########################################################################
343+#########################################################################
344+#########################################################################
304345
305346
306347
348+edges <- rbind(edges, edges.country)
349+
350+
351+sel <- grep("to", nodes.country$ID)
352+
353+nodes.country <- nodes.country[sel, ]
354+
355+nodes.country$ID <- substrRight(nodes.country$ID, 2)
356+
357+nodes.country$col <- "red"
358+
359+
360+
361+sel_fp <- classification$Country.codes[classification$Region.code==1]
362+
363+sel_fp <- as.character(sel_fp)
364+
365+
366+sel_esif <- classification$Country.codes[classification$Region.code==2]
367+
368+sel_esif <- as.character(sel_esif)
369+
370+
371+sel_row <- classification$Country.codes[classification$Region.code==3]
372+
373+sel_row <- as.character(sel_row)
374+
375+
376+
377+nodes.country$col[nodes.country$ID %in% sel_esif] <- "blue"
378+nodes.country$col[nodes.country$ID %in% sel_row] <- "darkgreen"
379+
380+nodes <- rbind(nodes, nodes.country)
381+
382+
383+res <- make_sankey(nodes=nodes, edges = edges)
384+
385+pdf("riverplot_macro_complete.pdf")
386+sankey(res)
387+dev.off()
307388
308389
309390 print("So far so good")