What was your dataset?
Load your dataset in with the function below. The input is the date the dataset was issued. You should be able to get this from the tt_available()
function.
critic <- readr:: read_tsv ('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/critic.tsv' )
Rows: 107 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: "\t"
chr (2): publication, text
dbl (1): grade
date (1): date
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
user_reviews <- readr:: read_tsv ('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/user_reviews.tsv' )
Rows: 2999 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: "\t"
chr (2): user_name, text
dbl (1): grade
date (1): date
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
items <- readr:: read_csv ('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/items.csv' )
Warning: One or more parsing issues, call `problems()` on your data frame for details,
e.g.:
dat <- vroom(...)
problems(dat)
Rows: 4565 Columns: 16
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (10): id, name, category, sell_currency, buy_currency, sources, recipe_i...
dbl (4): num_id, sell_value, buy_value, recipe
lgl (2): orderable, customizable
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
villagers <- readr:: read_csv ('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/villagers.csv' )
Rows: 391 Columns: 11
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (10): id, name, gender, species, birthday, personality, song, phrase, fu...
dbl (1): row_n
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Villagers
Data summary
Name
villagers
Number of rows
391
Number of columns
11
_______________________
Column type frequency:
character
10
numeric
1
________________________
Group variables
None
Variable type: character
id
0
1.00
2
8
0
391
0
name
0
1.00
2
8
0
391
0
gender
0
1.00
4
6
0
2
0
species
0
1.00
3
9
0
35
0
birthday
0
1.00
3
5
0
361
0
personality
0
1.00
4
6
0
8
0
song
11
0.97
7
16
0
92
0
phrase
0
1.00
2
10
0
388
0
full_id
0
1.00
11
17
0
391
0
url
0
1.00
60
66
0
391
0
Variable type: numeric
row_n
0
1
239.9
140.7
2
117.5
240
363.5
483
▇▇▇▇▇
Personalities by Species
species_count <- villagers %>%
group_by (species) %>%
summarize (species_count = n ()) %>%
arrange (species_count)
datatable (species_count)
level_order <- villagers %>%
group_by (species) %>% count () %>%
arrange (desc (n)) %>%
pull (species)
villagers %>%
mutate (species= factor (species, levels= level_order)) %>%
ggplot () + aes (x= species, y= personality, color= personality) %>%
geom_count () +
theme_light () + theme (legend.position = "none" ) +
theme (axis.text.x = element_text (angle = 90 ))
villagers %>% select (name, species, personality, url) %>%
mutate (combo = paste (species, personality)) %>% select (name, combo, url) -> villager_index
unique_combos <- villagers %>%
group_by (species, personality) %>% summarize (n= n ()) %>%
filter (n == 1 ) %>% mutate (combo= paste (species, personality)) %>%
inner_join (y= villager_index, by= c ("combo" )) %>% ungroup ()
`summarise()` has grouped output by 'species'. You can override using the
`.groups` argument.
out_image <- unique_combos %>%
ggplot () + aes (x= species, y= personality, image= url, name= name) +
geom_count () +
geom_raster (fill= "white" , color= "black" ) +
geom_image (asp= 1.2 , size= 0.03 ) +
theme_minimal () + theme (legend.position = "none" ) +
theme (axis.text.x = element_text (angle = 90 )) + labs (title= "There can be only one" , subtitle = "Unique Personality/Species combos in Animal Crossing" )
Warning in geom_raster(fill = "white", color = "black"): Ignoring unknown
parameters: `colour`
ggsave (plot= out_image, filename = "unique_animal_personalities.pdf" , width= 10 , height = 5 )
pers_vil <- villagers %>%
group_by (personality, species) %>%
summarize (count= n ()) %>%
#filter(count==1) %>%
arrange (species)
`summarise()` has grouped output by 'personality'. You can override using the
`.groups` argument.
pers_vil %>%
arrange (desc (count)) %>%
datatable ()
Items
Data summary
Name
items
Number of rows
4565
Number of columns
16
_______________________
Column type frequency:
character
10
logical
2
numeric
4
________________________
Group variables
None
Variable type: character
id
0
1.00
3
29
0
4200
0
name
0
1.00
3
29
0
4200
0
category
0
1.00
4
11
0
21
0
sell_currency
36
0.99
5
5
0
1
0
buy_currency
1014
0.78
5
5
0
2
0
sources
3663
0.20
3
71
0
125
0
recipe_id
3977
0.13
4
20
0
102
0
games_id
0
1.00
2
2
0
1
0
id_full
1528
0.67
8
34
0
2704
0
image_url
1528
0.67
56
82
0
2672
0
Variable type: logical
orderable
2775
0.39
0.45
FAL: 976, TRU: 814
customizable
3992
0.13
0.45
FAL: 316, TRU: 257
Variable type: numeric
num_id
0
1.00
3661.62
2187.95
12
1722
3569
5607
7443
▇▇▇▇▇
sell_value
36
0.99
2261.38
11313.23
5
240
390
1000
300000
▇▁▁▁▁
buy_value
1014
0.78
6959.65
34326.09
40
870
1300
2700
1200000
▇▁▁▁▁
recipe
3977
0.13
4.71
6.49
1
2
3
6
90
▇▁▁▁▁
library (tidyverse)
items %>% ggplot () +
aes (x= category, y= buy_value) +
geom_boxplot () +
ylim (c (0 ,75000 )) +
theme (axis.text.x = element_text (angle = 90 ))
Warning: Removed 1094 rows containing non-finite outside the scale range
(`stat_boxplot()`).
Most Expensive Items
This was the original code in my tweet:
library (gt)
items %>%
top_n (10 , buy_value) %>%
arrange (desc (buy_value)) %>%
select (name, sell_value, buy_value, category, image= image_url) %>%
gt () %>%
text_transform (
locations = cells_body (vars (image)),
fn = function (x) {
web_image (
url = x,
height = 50
)
}
)
Warning: Since gt v0.3.0, `columns = vars(...)` has been deprecated.
• Please use `columns = c(...)` instead.
Royal Crown
300000
1200000
Hats
Crown
250000
1000000
Hats
Gold Armor
80000
320000
Dresses
Golden Casket
80000
320000
Furniture
Grand Piano
65000
260000
Furniture
Golden Toilet
60000
240000
Furniture
Blue Steel Staircase
NA
228000
Furniture
Iron Bridge
NA
228000
Furniture
Red Steel Staircase
NA
228000
Furniture
Red Zen Bridge
NA
228000
Furniture
Zen Bridge
NA
228000
Furniture
Here’s a function.
most_expensive <- function (category_name= NULL , price_category= buy_value){
if (! is.null (category_name)){
items <- items %>%
filter (category == category_name)
}
items %>%
top_n (10 , {{price_category}}) %>%
arrange (desc ({{price_category}})) %>%
select (name, sell_value, buy_value, category, image= image_url) %>%
gt () %>%
text_transform (
locations = cells_body (vars (image)),
fn = function (x) {
web_image (
url = x,
height = 50
)
}
)
}
Reproducing the above table
Warning: Since gt v0.3.0, `columns = vars(...)` has been deprecated.
• Please use `columns = c(...)` instead.
Royal Crown
300000
1200000
Hats
Crown
250000
1000000
Hats
Gold Armor
80000
320000
Dresses
Golden Casket
80000
320000
Furniture
Grand Piano
65000
260000
Furniture
Golden Toilet
60000
240000
Furniture
Blue Steel Staircase
NA
228000
Furniture
Iron Bridge
NA
228000
Furniture
Red Steel Staircase
NA
228000
Furniture
Red Zen Bridge
NA
228000
Furniture
Zen Bridge
NA
228000
Furniture
Most Expensive Furniture
most_expensive ("Furniture" )
Warning: Since gt v0.3.0, `columns = vars(...)` has been deprecated.
• Please use `columns = c(...)` instead.
Golden Casket
80000
320000
Furniture
Grand Piano
65000
260000
Furniture
Golden Toilet
60000
240000
Furniture
Blue Steel Staircase
NA
228000
Furniture
Iron Bridge
NA
228000
Furniture
Red Steel Staircase
NA
228000
Furniture
Red Zen Bridge
NA
228000
Furniture
Zen Bridge
NA
228000
Furniture
Elaborate Kimono Stand
55000
220000
Furniture
Golden Seat
50000
200000
Furniture
Most Expensive Hats
library (gt)
most_expensive ("Hats" )
Warning: Since gt v0.3.0, `columns = vars(...)` has been deprecated.
• Please use `columns = c(...)` instead.
Royal Crown
300000
1200000
Hats
Crown
250000
1000000
Hats
Gold Helmet
50000
200000
Hats
Blue Rose Crown
12000
48000
Hats
Gold Rose Crown
12000
48000
Hats
Snowperson Head
7000
28000
Hats
Knight's Helmet
3750
15000
Hats
Dark Cosmos Crown
3360
13440
Hats
Chic Rose Crown
2880
11520
Hats
Purple Hyacinth Crown
2880
11520
Hats
Purple Pansy Crown
2880
11520
Hats
Purple Windflower Crown
2880
11520
Hats
Simple Mum Crown
2880
11520
Hats
Most Expensive Fossils
most_expensive ("Fossils" , sell_value)
Warning: Since gt v0.3.0, `columns = vars(...)` has been deprecated.
• Please use `columns = c(...)` instead.
Brachio Skull
6000
NA
Fossils
T. Rex Skull
6000
NA
Fossils
Brachio Chest
5500
NA
Fossils
Brachio Tail
5500
NA
Fossils
Dimetrodon Skull
5500
NA
Fossils
Right Megalo Side
5500
NA
Fossils
T. Rex Torso
5500
NA
Fossils
Tricera Skull
5500
NA
Fossils
Brachio Pelvis
5000
NA
Fossils
Dimetrodon Torso
5000
NA
Fossils
Diplo Skull
5000
NA
Fossils
Diplo Tail
5000
NA
Fossils
Left Quetzal Wing
5000
NA
Fossils
Right Quetzal Wing
5000
NA
Fossils
Stego Skull
5000
NA
Fossils
T. Rex Tail
5000
NA
Fossils
Tricera Torso
5000
NA
Fossils
Priceless Items by Category
items %>%
filter (is.na (buy_value)) %>%
ggplot (aes (x= category)) + geom_bar () +
theme (axis.text.x = element_text (angle= 90 ))
library (ggalluvial)
pers_vil %>% filter (species %in% c ("cat" , "rabbit" , "dog" )) %>%
ggplot (
aes (y = count,
axis1 = personality, axis2 = species)) +
geom_alluvium (aes (fill = count),
width = 0 , knot.pos = 0 , reverse = FALSE ) +
guides (fill = FALSE ) +
geom_stratum (width = 1 / 8 , reverse = FALSE ) +
geom_text (stat = "stratum" , infer.label = TRUE , reverse = FALSE )
Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
of ggplot2 3.3.4.
Warning in deprecate_parameter("infer.label", msg = "Use `aes(label = after_stat(stratum))`."): The parameter `infer.label` is deprecated.
Use `aes(label = after_stat(stratum))`.
Citation BibTeX citation:
@online{laderas2020,
author = {Laderas, Ted and Laderas, Ted},
title = {Animal {Crossing}},
date = {2020-05-05},
url = {https://laderast.github.io/articles/2020-05-05_animal-crossing/animal-crossing.html},
langid = {en}
}
For attribution, please cite this work as: