d <- tweets_c %>%
  filter(reply_count==children) %>%
  enrich_with_analytical_categories() %>%
  inner_join(users_c,by=c("author_id"="user_id")) %>%
  mutate(followers_count_bin=floor(log2(followers_count))) %>%
  count(followers_count_bin,tweet_type) %>%
  group_by(followers_count_bin) %>% 
  mutate(tweet_type_proportion=n/sum(n)) %>%
  ungroup() %>%
  collect()
Warning: Missing values are always removed in SQL.
Use `SUM(x, na.rm = TRUE)` to silence this warning
This warning is displayed only once per session.
d %>%
  ggplot(aes(x=followers_count_bin,y=tweet_type_proportion,color=tweet_type)) +
  geom_step() +
  scale_x_continuous(breaks=seq(0,30,by=4),labels=~scales::comma(2^.)) +
  scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
  theme_hsci_discrete() +
  xlab("Followers") +
  ylab("Proportion of tweets")
Warning: Removed 7 row(s) containing missing values (geom_path).

d <- tweets_c %>%
  filter(reply_count==children) %>%
  enrich_with_analytical_categories() %>%
  mutate(like_count_bin=floor(log2(like_count))) %>%
  count(like_count_bin,tweet_type) %>%
  group_by(like_count_bin) %>% 
  mutate(tweet_type_proportion=n/sum(n)) %>%
  ungroup() %>%
  collect()
d %>%
  ggplot(aes(x=like_count_bin,y=tweet_type_proportion,color=tweet_type)) +
  geom_step() +
  scale_x_continuous(breaks=seq(0,30,by=4),labels=~scales::comma(2^.)) +
  scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
  theme_hsci_discrete() +
  xlab("Likes") +
  ylab("Proportion of tweets")
Warning: Removed 7 row(s) containing missing values (geom_path).

d <- tweets_c %>%
  filter(reply_count==children) %>%
  enrich_with_analytical_categories() %>%
  count(hashtags,tweet_type) %>%
  group_by(hashtags) %>% 
  mutate(tweet_type_proportion=n/sum(n)) %>%
  ungroup() %>%
  collect()
library(ggbreak)
d %>%
  ggplot(aes(x=hashtags,y=tweet_type_proportion,color=tweet_type)) +
  geom_step() +
  scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
  theme_hsci_discrete() +
  xlab("Number of hashtags") +
  ylab("Proportion of tweets")
Warning: Removed 7 row(s) containing missing values (geom_path).

d <- tweets_c %>%
  filter(reply_count==children) %>%
  enrich_with_analytical_categories() %>%
  count(mentions,tweet_type) %>%
  group_by(mentions) %>% 
  mutate(tweet_type_proportion=n/sum(n)) %>%
  ungroup() %>%
  collect()
d %>%
  ggplot(aes(x=mentions,y=tweet_type_proportion,color=tweet_type)) +
  geom_step() +
  scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
  theme_hsci_discrete() +
  xlab("Number of mentions") +
  ylab("Proportion of tweets")
Warning: Removed 7 row(s) containing missing values (geom_path).

LS0tCnRpdGxlOiAiQ29udm95IGFuYWx5c2lzIgphdXRob3I6ICJFZXR1IE3DpGtlbMOkIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazoKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgdG9jOiB5ZXMKLS0tCgpgYGB7ciBzZXR1cCxpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19rbml0JHNldChyb290LmRpciA9IGhlcmU6OmhlcmUoKSkKbGlicmFyeShoZXJlKQpzb3VyY2UoaGVyZSgiY29kZS9jb21tb25fYmFzaXMuUiIpLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQoKbGlicmFyeShnbHVlKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsdWJyaWRhdGUpCmxpYnJhcnkoaG1zKQpsaWJyYXJ5KGdnYmVlc3dhcm0pCmxpYnJhcnkoZ2dwb2ludGRlbnNpdHkpCmxpYnJhcnkocGFrKQpwa2dfaW5zdGFsbCgiaHNjaS1yL2dnaHNjaSIpCmxpYnJhcnkoZ2doc2NpKQpsaWJyYXJ5KGd0KQoKcCA8LSBmdW5jdGlvbihudW1iZXIpIHsKICByZXR1cm4oZm9ybWF0KG51bWJlciwgc2NpZW50aWZpYyA9IEZBTFNFLCBiaWcubWFyayA9ICIsIikpCn0KcHAgPC0gZnVuY3Rpb24ocGVyY2VudGFnZSxhY2N1cmFjeT0wLjAxKSB7CiAgcmV0dXJuKHNjYWxlczo6cGVyY2VudChwZXJjZW50YWdlLCBhY2N1cmFjeSA9IGFjY3VyYWN5KSkKfQoKZW5yaWNoX3dpdGhfYW5hbHl0aWNhbF9jYXRlZ29yaWVzIDwtIGZ1bmN0aW9uKGRmKSB7CiAgZGYgJT4lIG11dGF0ZSh0d2VldF90eXBlPWNhc2Vfd2hlbigKICAgIHJlcGx5X2NvdW50PT0wICYgaXMubmEoaW5fcmVwbHlfdG8pIH4gImRlYWQgc3RhcnRlciIsCiAgICByZXBseV9jb3VudD09MCB+ICJkZWFkIHJlcGx5IiwKICAgIHByb2xpZmljX3JlcGx5X2NvdW50Pj0yICYgaXMubmEoaW5fcmVwbHlfdG8pIH4gInN0YXJ0ZXIgdGhhdCByZXN1bHRzIGluIGJyYW5jaGluZyIsCiAgICBwcm9saWZpY19yZXBseV9jb3VudD49MiB+ICJyZXBseSB0aGF0IHJlc3VsdHMgaW4gYnJhbmNoaW5nIiwKICAgIHByb2xpZmljX3JlcGx5X2NvdW50PT0xICYgaXMubmEoaW5fcmVwbHlfdG8pIH4gInN0YXJ0ZXIgdGhhdCByZXN1bHRzIGluIGNvbnRpbnVhdGlvbiIsCiAgICBwcm9saWZpY19yZXBseV9jb3VudD09MSB+ICJyZXBseSB0aGF0IHJlc3VsdHMgaW4gY29udGludWF0aW9uIiwKICAgIGFib3J0aXZlX3JlcGx5X2NvdW50Pj0xICYgaXMubmEoaW5fcmVwbHlfdG8pIH4gInN0YXJ0ZXIgdGhhdCByZXN1bHRzIGluIGRlYWQgcmVwbGllcyIsCiAgICBhYm9ydGl2ZV9yZXBseV9jb3VudD49MSB+ICJyZXBseSB0aGF0IHJlc3VsdHMgaW4gZGVhZCByZXBsaWVzIiwKICAgIFQgfiAicmVwbHkgdGhhdCByZXN1bHRzIGluIGRlYWQgcmVwbGllcyIKICApKQp9CmBgYAoKYGBge3J9CmQgPC0gdHdlZXRzX2MgJT4lCiAgZmlsdGVyKHJlcGx5X2NvdW50PT1jaGlsZHJlbikgJT4lCiAgZW5yaWNoX3dpdGhfYW5hbHl0aWNhbF9jYXRlZ29yaWVzKCkgJT4lCiAgaW5uZXJfam9pbih1c2Vyc19jLGJ5PWMoImF1dGhvcl9pZCI9InVzZXJfaWQiKSkgJT4lCiAgbXV0YXRlKGZvbGxvd2Vyc19jb3VudF9iaW49Zmxvb3IobG9nMihmb2xsb3dlcnNfY291bnQpKSkgJT4lCiAgY291bnQoZm9sbG93ZXJzX2NvdW50X2Jpbix0d2VldF90eXBlKSAlPiUKICBncm91cF9ieShmb2xsb3dlcnNfY291bnRfYmluKSAlPiUgCiAgbXV0YXRlKHR3ZWV0X3R5cGVfcHJvcG9ydGlvbj1uL3N1bShuKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIGNvbGxlY3QoKQpkICU+JQogIGdncGxvdChhZXMoeD1mb2xsb3dlcnNfY291bnRfYmluLHk9dHdlZXRfdHlwZV9wcm9wb3J0aW9uLGNvbG9yPXR3ZWV0X3R5cGUpKSArCiAgZ2VvbV9zdGVwKCkgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3M9c2VxKDAsMzAsYnk9NCksbGFiZWxzPX5zY2FsZXM6OmNvbW1hKDJeLikpICsKICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzPXNjYWxlczo6cGVyY2VudF9mb3JtYXQoYWNjdXJhY3k9MSkpICsKICB0aGVtZV9oc2NpX2Rpc2NyZXRlKCkgKwogIHhsYWIoIkZvbGxvd2VycyIpICsKICB5bGFiKCJQcm9wb3J0aW9uIG9mIHR3ZWV0cyIpCmBgYAoKYGBge3J9CmQgPC0gdHdlZXRzX2MgJT4lCiAgZmlsdGVyKHJlcGx5X2NvdW50PT1jaGlsZHJlbikgJT4lCiAgZW5yaWNoX3dpdGhfYW5hbHl0aWNhbF9jYXRlZ29yaWVzKCkgJT4lCiAgbXV0YXRlKGxpa2VfY291bnRfYmluPWZsb29yKGxvZzIobGlrZV9jb3VudCkpKSAlPiUKICBjb3VudChsaWtlX2NvdW50X2Jpbix0d2VldF90eXBlKSAlPiUKICBncm91cF9ieShsaWtlX2NvdW50X2JpbikgJT4lIAogIG11dGF0ZSh0d2VldF90eXBlX3Byb3BvcnRpb249bi9zdW0obikpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBjb2xsZWN0KCkKZCAlPiUKICBnZ3Bsb3QoYWVzKHg9bGlrZV9jb3VudF9iaW4seT10d2VldF90eXBlX3Byb3BvcnRpb24sY29sb3I9dHdlZXRfdHlwZSkpICsKICBnZW9tX3N0ZXAoKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcz1zZXEoMCwzMCxieT00KSxsYWJlbHM9fnNjYWxlczo6Y29tbWEoMl4uKSkgKwogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHM9c2NhbGVzOjpwZXJjZW50X2Zvcm1hdChhY2N1cmFjeT0xKSkgKwogIHRoZW1lX2hzY2lfZGlzY3JldGUoKSArCiAgeGxhYigiTGlrZXMiKSArCiAgeWxhYigiUHJvcG9ydGlvbiBvZiB0d2VldHMiKQpgYGAKCmBgYHtyfQpkIDwtIHR3ZWV0c19jICU+JQogIGZpbHRlcihyZXBseV9jb3VudD09Y2hpbGRyZW4pICU+JQogIGVucmljaF93aXRoX2FuYWx5dGljYWxfY2F0ZWdvcmllcygpICU+JQogIGNvdW50KGhhc2h0YWdzLHR3ZWV0X3R5cGUpICU+JQogIGdyb3VwX2J5KGhhc2h0YWdzKSAlPiUgCiAgbXV0YXRlKHR3ZWV0X3R5cGVfcHJvcG9ydGlvbj1uL3N1bShuKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIGNvbGxlY3QoKQpkICU+JQogIGdncGxvdChhZXMoeD1oYXNodGFncyx5PXR3ZWV0X3R5cGVfcHJvcG9ydGlvbixjb2xvcj10d2VldF90eXBlKSkgKwogIGdlb21fc3RlcCgpICsKICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzPXNjYWxlczo6cGVyY2VudF9mb3JtYXQoYWNjdXJhY3k9MSkpICsKICB0aGVtZV9oc2NpX2Rpc2NyZXRlKCkgKwogIHhsYWIoIk51bWJlciBvZiBoYXNodGFncyIpICsKICB5bGFiKCJQcm9wb3J0aW9uIG9mIHR3ZWV0cyIpCmBgYAoKYGBge3J9CmQgPC0gdHdlZXRzX2MgJT4lCiAgZmlsdGVyKHJlcGx5X2NvdW50PT1jaGlsZHJlbikgJT4lCiAgZW5yaWNoX3dpdGhfYW5hbHl0aWNhbF9jYXRlZ29yaWVzKCkgJT4lCiAgY291bnQobWVudGlvbnMsdHdlZXRfdHlwZSkgJT4lCiAgZ3JvdXBfYnkobWVudGlvbnMpICU+JSAKICBtdXRhdGUodHdlZXRfdHlwZV9wcm9wb3J0aW9uPW4vc3VtKG4pKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgY29sbGVjdCgpCmQgJT4lCiAgZ2dwbG90KGFlcyh4PW1lbnRpb25zLHk9dHdlZXRfdHlwZV9wcm9wb3J0aW9uLGNvbG9yPXR3ZWV0X3R5cGUpKSArCiAgZ2VvbV9zdGVwKCkgKwogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHM9c2NhbGVzOjpwZXJjZW50X2Zvcm1hdChhY2N1cmFjeT0xKSkgKwogIHRoZW1lX2hzY2lfZGlzY3JldGUoKSArCiAgeGxhYigiTnVtYmVyIG9mIG1lbnRpb25zIikgKwogIHlsYWIoIlByb3BvcnRpb24gb2YgdHdlZXRzIikKYGBg