{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"library(tidyverse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Deuxième partie : Manipulation des données avec dplyr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Avec la fonction `filter()`, trouvez les 8 mamifères qui dorment plus de 16 heures par jour"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"A tibble: 8 × 11\n",
"\n",
"\tname | genus | vore | order | conservation | sleep_total | sleep_rem | sleep_cycle | awake | brainwt | bodywt |
\n",
"\t<chr> | <chr> | <chr> | <chr> | <chr> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\tOwl monkey | Aotus | omni | Primates | NA | 17.0 | 1.8 | NA | 7.0 | 0.01550 | 0.480 |
\n",
"\tLong-nosed armadillo | Dasypus | carni | Cingulata | lc | 17.4 | 3.1 | 0.3833333 | 6.6 | 0.01080 | 3.500 |
\n",
"\tNorth American Opossum | Didelphis | omni | Didelphimorphia | lc | 18.0 | 4.9 | 0.3333333 | 6.0 | 0.00630 | 1.700 |
\n",
"\tBig brown bat | Eptesicus | insecti | Chiroptera | lc | 19.7 | 3.9 | 0.1166667 | 4.3 | 0.00030 | 0.023 |
\n",
"\tThick-tailed opposum | Lutreolina | carni | Didelphimorphia | lc | 19.4 | 6.6 | NA | 4.6 | NA | 0.370 |
\n",
"\tLittle brown bat | Myotis | insecti | Chiroptera | NA | 19.9 | 2.0 | 0.2000000 | 4.1 | 0.00025 | 0.010 |
\n",
"\tGiant armadillo | Priodontes | insecti | Cingulata | en | 18.1 | 6.1 | NA | 5.9 | 0.08100 | 60.000 |
\n",
"\tArctic ground squirrel | Spermophilus | herbi | Rodentia | lc | 16.6 | NA | NA | 7.4 | 0.00570 | 0.920 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 8 × 11\n",
"\\begin{tabular}{lllllllllll}\n",
" name & genus & vore & order & conservation & sleep\\_total & sleep\\_rem & sleep\\_cycle & awake & brainwt & bodywt\\\\\n",
" & & & & & & & & & & \\\\\n",
"\\hline\n",
"\t Owl monkey & Aotus & omni & Primates & NA & 17.0 & 1.8 & NA & 7.0 & 0.01550 & 0.480\\\\\n",
"\t Long-nosed armadillo & Dasypus & carni & Cingulata & lc & 17.4 & 3.1 & 0.3833333 & 6.6 & 0.01080 & 3.500\\\\\n",
"\t North American Opossum & Didelphis & omni & Didelphimorphia & lc & 18.0 & 4.9 & 0.3333333 & 6.0 & 0.00630 & 1.700\\\\\n",
"\t Big brown bat & Eptesicus & insecti & Chiroptera & lc & 19.7 & 3.9 & 0.1166667 & 4.3 & 0.00030 & 0.023\\\\\n",
"\t Thick-tailed opposum & Lutreolina & carni & Didelphimorphia & lc & 19.4 & 6.6 & NA & 4.6 & NA & 0.370\\\\\n",
"\t Little brown bat & Myotis & insecti & Chiroptera & NA & 19.9 & 2.0 & 0.2000000 & 4.1 & 0.00025 & 0.010\\\\\n",
"\t Giant armadillo & Priodontes & insecti & Cingulata & en & 18.1 & 6.1 & NA & 5.9 & 0.08100 & 60.000\\\\\n",
"\t Arctic ground squirrel & Spermophilus & herbi & Rodentia & lc & 16.6 & NA & NA & 7.4 & 0.00570 & 0.920\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 8 × 11\n",
"\n",
"| name <chr> | genus <chr> | vore <chr> | order <chr> | conservation <chr> | sleep_total <dbl> | sleep_rem <dbl> | sleep_cycle <dbl> | awake <dbl> | brainwt <dbl> | bodywt <dbl> |\n",
"|---|---|---|---|---|---|---|---|---|---|---|\n",
"| Owl monkey | Aotus | omni | Primates | NA | 17.0 | 1.8 | NA | 7.0 | 0.01550 | 0.480 |\n",
"| Long-nosed armadillo | Dasypus | carni | Cingulata | lc | 17.4 | 3.1 | 0.3833333 | 6.6 | 0.01080 | 3.500 |\n",
"| North American Opossum | Didelphis | omni | Didelphimorphia | lc | 18.0 | 4.9 | 0.3333333 | 6.0 | 0.00630 | 1.700 |\n",
"| Big brown bat | Eptesicus | insecti | Chiroptera | lc | 19.7 | 3.9 | 0.1166667 | 4.3 | 0.00030 | 0.023 |\n",
"| Thick-tailed opposum | Lutreolina | carni | Didelphimorphia | lc | 19.4 | 6.6 | NA | 4.6 | NA | 0.370 |\n",
"| Little brown bat | Myotis | insecti | Chiroptera | NA | 19.9 | 2.0 | 0.2000000 | 4.1 | 0.00025 | 0.010 |\n",
"| Giant armadillo | Priodontes | insecti | Cingulata | en | 18.1 | 6.1 | NA | 5.9 | 0.08100 | 60.000 |\n",
"| Arctic ground squirrel | Spermophilus | herbi | Rodentia | lc | 16.6 | NA | NA | 7.4 | 0.00570 | 0.920 |\n",
"\n"
],
"text/plain": [
" name genus vore order conservation\n",
"1 Owl monkey Aotus omni Primates NA \n",
"2 Long-nosed armadillo Dasypus carni Cingulata lc \n",
"3 North American Opossum Didelphis omni Didelphimorphia lc \n",
"4 Big brown bat Eptesicus insecti Chiroptera lc \n",
"5 Thick-tailed opposum Lutreolina carni Didelphimorphia lc \n",
"6 Little brown bat Myotis insecti Chiroptera NA \n",
"7 Giant armadillo Priodontes insecti Cingulata en \n",
"8 Arctic ground squirrel Spermophilus herbi Rodentia lc \n",
" sleep_total sleep_rem sleep_cycle awake brainwt bodywt\n",
"1 17.0 1.8 NA 7.0 0.01550 0.480\n",
"2 17.4 3.1 0.3833333 6.6 0.01080 3.500\n",
"3 18.0 4.9 0.3333333 6.0 0.00630 1.700\n",
"4 19.7 3.9 0.1166667 4.3 0.00030 0.023\n",
"5 19.4 6.6 NA 4.6 NA 0.370\n",
"6 19.9 2.0 0.2000000 4.1 0.00025 0.010\n",
"7 18.1 6.1 NA 5.9 0.08100 60.000\n",
"8 16.6 NA NA 7.4 0.00570 0.920"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"filter(msleep, sleep_total > 16)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Avec la fonction `arrange()`, triez les données par ordre taxonomique (`order`) puis par temps de sommeil croissant (`sleep_total`)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 11\n",
"\n",
"\tname | genus | vore | order | conservation | sleep_total | sleep_rem | sleep_cycle | awake | brainwt | bodywt |
\n",
"\t<chr> | <chr> | <chr> | <chr> | <chr> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\tTenrec | Tenrec | omni | Afrosoricida | NA | 15.6 | 2.3 | NA | 8.4 | 0.0026 | 0.900 |
\n",
"\tGiraffe | Giraffa | herbi | Artiodactyla | cd | 1.9 | 0.4 | NA | 22.1 | NA | 899.995 |
\n",
"\tRoe deer | Capreolus | herbi | Artiodactyla | lc | 3.0 | NA | NA | 21.0 | 0.0982 | 14.800 |
\n",
"\tSheep | Ovis | herbi | Artiodactyla | domesticated | 3.8 | 0.6 | NA | 20.2 | 0.1750 | 55.500 |
\n",
"\tCow | Bos | herbi | Artiodactyla | domesticated | 4.0 | 0.7 | 0.6666667 | 20.0 | 0.4230 | 600.000 |
\n",
"\tGoat | Capri | herbi | Artiodactyla | lc | 5.3 | 0.6 | NA | 18.7 | 0.1150 | 33.500 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 11\n",
"\\begin{tabular}{lllllllllll}\n",
" name & genus & vore & order & conservation & sleep\\_total & sleep\\_rem & sleep\\_cycle & awake & brainwt & bodywt\\\\\n",
" & & & & & & & & & & \\\\\n",
"\\hline\n",
"\t Tenrec & Tenrec & omni & Afrosoricida & NA & 15.6 & 2.3 & NA & 8.4 & 0.0026 & 0.900\\\\\n",
"\t Giraffe & Giraffa & herbi & Artiodactyla & cd & 1.9 & 0.4 & NA & 22.1 & NA & 899.995\\\\\n",
"\t Roe deer & Capreolus & herbi & Artiodactyla & lc & 3.0 & NA & NA & 21.0 & 0.0982 & 14.800\\\\\n",
"\t Sheep & Ovis & herbi & Artiodactyla & domesticated & 3.8 & 0.6 & NA & 20.2 & 0.1750 & 55.500\\\\\n",
"\t Cow & Bos & herbi & Artiodactyla & domesticated & 4.0 & 0.7 & 0.6666667 & 20.0 & 0.4230 & 600.000\\\\\n",
"\t Goat & Capri & herbi & Artiodactyla & lc & 5.3 & 0.6 & NA & 18.7 & 0.1150 & 33.500\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 11\n",
"\n",
"| name <chr> | genus <chr> | vore <chr> | order <chr> | conservation <chr> | sleep_total <dbl> | sleep_rem <dbl> | sleep_cycle <dbl> | awake <dbl> | brainwt <dbl> | bodywt <dbl> |\n",
"|---|---|---|---|---|---|---|---|---|---|---|\n",
"| Tenrec | Tenrec | omni | Afrosoricida | NA | 15.6 | 2.3 | NA | 8.4 | 0.0026 | 0.900 |\n",
"| Giraffe | Giraffa | herbi | Artiodactyla | cd | 1.9 | 0.4 | NA | 22.1 | NA | 899.995 |\n",
"| Roe deer | Capreolus | herbi | Artiodactyla | lc | 3.0 | NA | NA | 21.0 | 0.0982 | 14.800 |\n",
"| Sheep | Ovis | herbi | Artiodactyla | domesticated | 3.8 | 0.6 | NA | 20.2 | 0.1750 | 55.500 |\n",
"| Cow | Bos | herbi | Artiodactyla | domesticated | 4.0 | 0.7 | 0.6666667 | 20.0 | 0.4230 | 600.000 |\n",
"| Goat | Capri | herbi | Artiodactyla | lc | 5.3 | 0.6 | NA | 18.7 | 0.1150 | 33.500 |\n",
"\n"
],
"text/plain": [
" name genus vore order conservation sleep_total sleep_rem\n",
"1 Tenrec Tenrec omni Afrosoricida NA 15.6 2.3 \n",
"2 Giraffe Giraffa herbi Artiodactyla cd 1.9 0.4 \n",
"3 Roe deer Capreolus herbi Artiodactyla lc 3.0 NA \n",
"4 Sheep Ovis herbi Artiodactyla domesticated 3.8 0.6 \n",
"5 Cow Bos herbi Artiodactyla domesticated 4.0 0.7 \n",
"6 Goat Capri herbi Artiodactyla lc 5.3 0.6 \n",
" sleep_cycle awake brainwt bodywt \n",
"1 NA 8.4 0.0026 0.900\n",
"2 NA 22.1 NA 899.995\n",
"3 NA 21.0 0.0982 14.800\n",
"4 NA 20.2 0.1750 55.500\n",
"5 0.6666667 20.0 0.4230 600.000\n",
"6 NA 18.7 0.1150 33.500"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"arrange(msleep, order, sleep_total) %>%\n",
" head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Avec la fonction `select()`, sélectionnez les colonnes qui commencent par \"sleep\""
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 3\n",
"\n",
"\tsleep_total | sleep_rem | sleep_cycle |
\n",
"\t<dbl> | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\t12.1 | NA | NA |
\n",
"\t17.0 | 1.8 | NA |
\n",
"\t14.4 | 2.4 | NA |
\n",
"\t14.9 | 2.3 | 0.1333333 |
\n",
"\t 4.0 | 0.7 | 0.6666667 |
\n",
"\t14.4 | 2.2 | 0.7666667 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 3\n",
"\\begin{tabular}{lll}\n",
" sleep\\_total & sleep\\_rem & sleep\\_cycle\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t 12.1 & NA & NA\\\\\n",
"\t 17.0 & 1.8 & NA\\\\\n",
"\t 14.4 & 2.4 & NA\\\\\n",
"\t 14.9 & 2.3 & 0.1333333\\\\\n",
"\t 4.0 & 0.7 & 0.6666667\\\\\n",
"\t 14.4 & 2.2 & 0.7666667\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 3\n",
"\n",
"| sleep_total <dbl> | sleep_rem <dbl> | sleep_cycle <dbl> |\n",
"|---|---|---|\n",
"| 12.1 | NA | NA |\n",
"| 17.0 | 1.8 | NA |\n",
"| 14.4 | 2.4 | NA |\n",
"| 14.9 | 2.3 | 0.1333333 |\n",
"| 4.0 | 0.7 | 0.6666667 |\n",
"| 14.4 | 2.2 | 0.7666667 |\n",
"\n"
],
"text/plain": [
" sleep_total sleep_rem sleep_cycle\n",
"1 12.1 NA NA \n",
"2 17.0 1.8 NA \n",
"3 14.4 2.4 NA \n",
"4 14.9 2.3 0.1333333 \n",
"5 4.0 0.7 0.6666667 \n",
"6 14.4 2.2 0.7666667 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"select(msleep, starts_with(\"sleep\")) %>%\n",
" head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Avec l'opérateur `%>%`, enchainez les opérations suivantes :\n",
"Sélectionnez les colonnes `name`, `order` et `sleep_total`, triez en fonction de `order`puis de `sleep_total` et enfin filtrer pour les mamifères dormant 16h ou plus."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 8 × 3\n",
"\n",
"\tname | order | sleep_total |
\n",
"\t<chr> | <chr> | <dbl> |
\n",
"\n",
"\n",
"\tBig brown bat | Chiroptera | 19.7 |
\n",
"\tLittle brown bat | Chiroptera | 19.9 |
\n",
"\tLong-nosed armadillo | Cingulata | 17.4 |
\n",
"\tGiant armadillo | Cingulata | 18.1 |
\n",
"\tNorth American Opossum | Didelphimorphia | 18.0 |
\n",
"\tThick-tailed opposum | Didelphimorphia | 19.4 |
\n",
"\tOwl monkey | Primates | 17.0 |
\n",
"\tArctic ground squirrel | Rodentia | 16.6 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 8 × 3\n",
"\\begin{tabular}{lll}\n",
" name & order & sleep\\_total\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t Big brown bat & Chiroptera & 19.7\\\\\n",
"\t Little brown bat & Chiroptera & 19.9\\\\\n",
"\t Long-nosed armadillo & Cingulata & 17.4\\\\\n",
"\t Giant armadillo & Cingulata & 18.1\\\\\n",
"\t North American Opossum & Didelphimorphia & 18.0\\\\\n",
"\t Thick-tailed opposum & Didelphimorphia & 19.4\\\\\n",
"\t Owl monkey & Primates & 17.0\\\\\n",
"\t Arctic ground squirrel & Rodentia & 16.6\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 8 × 3\n",
"\n",
"| name <chr> | order <chr> | sleep_total <dbl> |\n",
"|---|---|---|\n",
"| Big brown bat | Chiroptera | 19.7 |\n",
"| Little brown bat | Chiroptera | 19.9 |\n",
"| Long-nosed armadillo | Cingulata | 17.4 |\n",
"| Giant armadillo | Cingulata | 18.1 |\n",
"| North American Opossum | Didelphimorphia | 18.0 |\n",
"| Thick-tailed opposum | Didelphimorphia | 19.4 |\n",
"| Owl monkey | Primates | 17.0 |\n",
"| Arctic ground squirrel | Rodentia | 16.6 |\n",
"\n"
],
"text/plain": [
" name order sleep_total\n",
"1 Big brown bat Chiroptera 19.7 \n",
"2 Little brown bat Chiroptera 19.9 \n",
"3 Long-nosed armadillo Cingulata 17.4 \n",
"4 Giant armadillo Cingulata 18.1 \n",
"5 North American Opossum Didelphimorphia 18.0 \n",
"6 Thick-tailed opposum Didelphimorphia 19.4 \n",
"7 Owl monkey Primates 17.0 \n",
"8 Arctic ground squirrel Rodentia 16.6 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"msleep %>%\n",
" select(name, order, sleep_total) %>%\n",
" arrange(order, sleep_total) %>%\n",
" filter(sleep_total > 16)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. Avec la fonction `mutate()`, créez une nouvelle variable `rem_proportion` qui calcule la proportion de sommeil paradoxal (`sleep_rem`) par rapport au sommeil total (`sleep_total`)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 4\n",
"\n",
"\tname | order | sleep_total | rem_proportion |
\n",
"\t<chr> | <chr> | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\tCheetah | Carnivora | 12.1 | NA |
\n",
"\tOwl monkey | Primates | 17.0 | 0.1058824 |
\n",
"\tMountain beaver | Rodentia | 14.4 | 0.1666667 |
\n",
"\tGreater short-tailed shrew | Soricomorpha | 14.9 | 0.1543624 |
\n",
"\tCow | Artiodactyla | 4.0 | 0.1750000 |
\n",
"\tThree-toed sloth | Pilosa | 14.4 | 0.1527778 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 4\n",
"\\begin{tabular}{llll}\n",
" name & order & sleep\\_total & rem\\_proportion\\\\\n",
" & & & \\\\\n",
"\\hline\n",
"\t Cheetah & Carnivora & 12.1 & NA\\\\\n",
"\t Owl monkey & Primates & 17.0 & 0.1058824\\\\\n",
"\t Mountain beaver & Rodentia & 14.4 & 0.1666667\\\\\n",
"\t Greater short-tailed shrew & Soricomorpha & 14.9 & 0.1543624\\\\\n",
"\t Cow & Artiodactyla & 4.0 & 0.1750000\\\\\n",
"\t Three-toed sloth & Pilosa & 14.4 & 0.1527778\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 4\n",
"\n",
"| name <chr> | order <chr> | sleep_total <dbl> | rem_proportion <dbl> |\n",
"|---|---|---|---|\n",
"| Cheetah | Carnivora | 12.1 | NA |\n",
"| Owl monkey | Primates | 17.0 | 0.1058824 |\n",
"| Mountain beaver | Rodentia | 14.4 | 0.1666667 |\n",
"| Greater short-tailed shrew | Soricomorpha | 14.9 | 0.1543624 |\n",
"| Cow | Artiodactyla | 4.0 | 0.1750000 |\n",
"| Three-toed sloth | Pilosa | 14.4 | 0.1527778 |\n",
"\n"
],
"text/plain": [
" name order sleep_total rem_proportion\n",
"1 Cheetah Carnivora 12.1 NA \n",
"2 Owl monkey Primates 17.0 0.1058824 \n",
"3 Mountain beaver Rodentia 14.4 0.1666667 \n",
"4 Greater short-tailed shrew Soricomorpha 14.9 0.1543624 \n",
"5 Cow Artiodactyla 4.0 0.1750000 \n",
"6 Three-toed sloth Pilosa 14.4 0.1527778 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"msleep %>%\n",
" mutate(rem_proportion = sleep_rem/sleep_total) %>%\n",
" select(name, order, sleep_total, rem_proportion) %>%\n",
" head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Produite des résumés informatifs avec `summarise`"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 1 × 4\n",
"\n",
"\tavg_sleep | min_sleep | max_sleep | total |
\n",
"\t<dbl> | <dbl> | <dbl> | <int> |
\n",
"\n",
"\n",
"\t10.43373 | 1.9 | 19.9 | 83 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 1 × 4\n",
"\\begin{tabular}{llll}\n",
" avg\\_sleep & min\\_sleep & max\\_sleep & total\\\\\n",
" & & & \\\\\n",
"\\hline\n",
"\t 10.43373 & 1.9 & 19.9 & 83\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 1 × 4\n",
"\n",
"| avg_sleep <dbl> | min_sleep <dbl> | max_sleep <dbl> | total <int> |\n",
"|---|---|---|---|\n",
"| 10.43373 | 1.9 | 19.9 | 83 |\n",
"\n"
],
"text/plain": [
" avg_sleep min_sleep max_sleep total\n",
"1 10.43373 1.9 19.9 83 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"msleep %>% \n",
" summarise(avg_sleep = mean(sleep_total), \n",
" min_sleep = min(sleep_total),\n",
" max_sleep = max(sleep_total),\n",
" total = n())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. Avec les fonctions `group_by()` et `summarise()` calculez, pour chaque ordre taxonomique : le nombre d'animaux, le temps de sommeil moyen, le temps de sommeil minimal et le temps de sommeil maximal."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 19 × 5\n",
"\n",
"\torder | avg_sleep | min_sleep | max_sleep | total |
\n",
"\t<chr> | <dbl> | <dbl> | <dbl> | <int> |
\n",
"\n",
"\n",
"\tAfrosoricida | 15.600000 | 15.6 | 15.6 | 1 |
\n",
"\tArtiodactyla | 4.516667 | 1.9 | 9.1 | 6 |
\n",
"\tCarnivora | 10.116667 | 3.5 | 15.8 | 12 |
\n",
"\tCetacea | 4.500000 | 2.7 | 5.6 | 3 |
\n",
"\tChiroptera | 19.800000 | 19.7 | 19.9 | 2 |
\n",
"\tCingulata | 17.750000 | 17.4 | 18.1 | 2 |
\n",
"\tDidelphimorphia | 18.700000 | 18.0 | 19.4 | 2 |
\n",
"\tDiprotodontia | 12.400000 | 11.1 | 13.7 | 2 |
\n",
"\tErinaceomorpha | 10.200000 | 10.1 | 10.3 | 2 |
\n",
"\tHyracoidea | 5.666667 | 5.3 | 6.3 | 3 |
\n",
"\tLagomorpha | 8.400000 | 8.4 | 8.4 | 1 |
\n",
"\tMonotremata | 8.600000 | 8.6 | 8.6 | 1 |
\n",
"\tPerissodactyla | 3.466667 | 2.9 | 4.4 | 3 |
\n",
"\tPilosa | 14.400000 | 14.4 | 14.4 | 1 |
\n",
"\tPrimates | 10.500000 | 8.0 | 17.0 | 12 |
\n",
"\tProboscidea | 3.600000 | 3.3 | 3.9 | 2 |
\n",
"\tRodentia | 12.468182 | 7.0 | 16.6 | 22 |
\n",
"\tScandentia | 8.900000 | 8.9 | 8.9 | 1 |
\n",
"\tSoricomorpha | 11.100000 | 8.4 | 14.9 | 5 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 19 × 5\n",
"\\begin{tabular}{lllll}\n",
" order & avg\\_sleep & min\\_sleep & max\\_sleep & total\\\\\n",
" & & & & \\\\\n",
"\\hline\n",
"\t Afrosoricida & 15.600000 & 15.6 & 15.6 & 1\\\\\n",
"\t Artiodactyla & 4.516667 & 1.9 & 9.1 & 6\\\\\n",
"\t Carnivora & 10.116667 & 3.5 & 15.8 & 12\\\\\n",
"\t Cetacea & 4.500000 & 2.7 & 5.6 & 3\\\\\n",
"\t Chiroptera & 19.800000 & 19.7 & 19.9 & 2\\\\\n",
"\t Cingulata & 17.750000 & 17.4 & 18.1 & 2\\\\\n",
"\t Didelphimorphia & 18.700000 & 18.0 & 19.4 & 2\\\\\n",
"\t Diprotodontia & 12.400000 & 11.1 & 13.7 & 2\\\\\n",
"\t Erinaceomorpha & 10.200000 & 10.1 & 10.3 & 2\\\\\n",
"\t Hyracoidea & 5.666667 & 5.3 & 6.3 & 3\\\\\n",
"\t Lagomorpha & 8.400000 & 8.4 & 8.4 & 1\\\\\n",
"\t Monotremata & 8.600000 & 8.6 & 8.6 & 1\\\\\n",
"\t Perissodactyla & 3.466667 & 2.9 & 4.4 & 3\\\\\n",
"\t Pilosa & 14.400000 & 14.4 & 14.4 & 1\\\\\n",
"\t Primates & 10.500000 & 8.0 & 17.0 & 12\\\\\n",
"\t Proboscidea & 3.600000 & 3.3 & 3.9 & 2\\\\\n",
"\t Rodentia & 12.468182 & 7.0 & 16.6 & 22\\\\\n",
"\t Scandentia & 8.900000 & 8.9 & 8.9 & 1\\\\\n",
"\t Soricomorpha & 11.100000 & 8.4 & 14.9 & 5\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 19 × 5\n",
"\n",
"| order <chr> | avg_sleep <dbl> | min_sleep <dbl> | max_sleep <dbl> | total <int> |\n",
"|---|---|---|---|---|\n",
"| Afrosoricida | 15.600000 | 15.6 | 15.6 | 1 |\n",
"| Artiodactyla | 4.516667 | 1.9 | 9.1 | 6 |\n",
"| Carnivora | 10.116667 | 3.5 | 15.8 | 12 |\n",
"| Cetacea | 4.500000 | 2.7 | 5.6 | 3 |\n",
"| Chiroptera | 19.800000 | 19.7 | 19.9 | 2 |\n",
"| Cingulata | 17.750000 | 17.4 | 18.1 | 2 |\n",
"| Didelphimorphia | 18.700000 | 18.0 | 19.4 | 2 |\n",
"| Diprotodontia | 12.400000 | 11.1 | 13.7 | 2 |\n",
"| Erinaceomorpha | 10.200000 | 10.1 | 10.3 | 2 |\n",
"| Hyracoidea | 5.666667 | 5.3 | 6.3 | 3 |\n",
"| Lagomorpha | 8.400000 | 8.4 | 8.4 | 1 |\n",
"| Monotremata | 8.600000 | 8.6 | 8.6 | 1 |\n",
"| Perissodactyla | 3.466667 | 2.9 | 4.4 | 3 |\n",
"| Pilosa | 14.400000 | 14.4 | 14.4 | 1 |\n",
"| Primates | 10.500000 | 8.0 | 17.0 | 12 |\n",
"| Proboscidea | 3.600000 | 3.3 | 3.9 | 2 |\n",
"| Rodentia | 12.468182 | 7.0 | 16.6 | 22 |\n",
"| Scandentia | 8.900000 | 8.9 | 8.9 | 1 |\n",
"| Soricomorpha | 11.100000 | 8.4 | 14.9 | 5 |\n",
"\n"
],
"text/plain": [
" order avg_sleep min_sleep max_sleep total\n",
"1 Afrosoricida 15.600000 15.6 15.6 1 \n",
"2 Artiodactyla 4.516667 1.9 9.1 6 \n",
"3 Carnivora 10.116667 3.5 15.8 12 \n",
"4 Cetacea 4.500000 2.7 5.6 3 \n",
"5 Chiroptera 19.800000 19.7 19.9 2 \n",
"6 Cingulata 17.750000 17.4 18.1 2 \n",
"7 Didelphimorphia 18.700000 18.0 19.4 2 \n",
"8 Diprotodontia 12.400000 11.1 13.7 2 \n",
"9 Erinaceomorpha 10.200000 10.1 10.3 2 \n",
"10 Hyracoidea 5.666667 5.3 6.3 3 \n",
"11 Lagomorpha 8.400000 8.4 8.4 1 \n",
"12 Monotremata 8.600000 8.6 8.6 1 \n",
"13 Perissodactyla 3.466667 2.9 4.4 3 \n",
"14 Pilosa 14.400000 14.4 14.4 1 \n",
"15 Primates 10.500000 8.0 17.0 12 \n",
"16 Proboscidea 3.600000 3.3 3.9 2 \n",
"17 Rodentia 12.468182 7.0 16.6 22 \n",
"18 Scandentia 8.900000 8.9 8.9 1 \n",
"19 Soricomorpha 11.100000 8.4 14.9 5 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"msleep %>% \n",
" group_by(order) %>%\n",
" summarise(avg_sleep = mean(sleep_total), \n",
" min_sleep = min(sleep_total),\n",
" max_sleep = max(sleep_total),\n",
" total = n())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Troisième partie : Ranger des données avec tidyr"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 6 × 5\n",
"\n",
"\t | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
\n",
"\t | <dbl> | <dbl> | <dbl> | <dbl> | <fct> |
\n",
"\n",
"\n",
"\t1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
\n",
"\t2 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
\n",
"\t3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
\n",
"\t4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
\n",
"\t5 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
\n",
"\t6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 6 × 5\n",
"\\begin{tabular}{r|lllll}\n",
" & Sepal.Length & Sepal.Width & Petal.Length & Petal.Width & Species\\\\\n",
" & & & & & \\\\\n",
"\\hline\n",
"\t1 & 5.1 & 3.5 & 1.4 & 0.2 & setosa\\\\\n",
"\t2 & 4.9 & 3.0 & 1.4 & 0.2 & setosa\\\\\n",
"\t3 & 4.7 & 3.2 & 1.3 & 0.2 & setosa\\\\\n",
"\t4 & 4.6 & 3.1 & 1.5 & 0.2 & setosa\\\\\n",
"\t5 & 5.0 & 3.6 & 1.4 & 0.2 & setosa\\\\\n",
"\t6 & 5.4 & 3.9 & 1.7 & 0.4 & setosa\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 6 × 5\n",
"\n",
"| | Sepal.Length <dbl> | Sepal.Width <dbl> | Petal.Length <dbl> | Petal.Width <dbl> | Species <fct> |\n",
"|---|---|---|---|---|---|\n",
"| 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |\n",
"| 2 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |\n",
"| 3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |\n",
"| 4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |\n",
"| 5 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |\n",
"| 6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa |\n",
"\n"
],
"text/plain": [
" Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n",
"1 5.1 3.5 1.4 0.2 setosa \n",
"2 4.9 3.0 1.4 0.2 setosa \n",
"3 4.7 3.2 1.3 0.2 setosa \n",
"4 4.6 3.1 1.5 0.2 setosa \n",
"5 5.0 3.6 1.4 0.2 setosa \n",
"6 5.4 3.9 1.7 0.4 setosa "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"head(iris)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. En utilisant la fonction `pivot_longer()`, créez un jeu de données où les étiquettes `Sepal.Length` `Sepal.Width` `Petal.Length` `Petal.Width` sont bien rangées dans une colonne appelée `Variables`. Les mesures correspondantes sont rangées dans une colonne appelée `Mesures`."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A tibble: 6 × 3\n",
"\n",
"\tSpecies | name | value |
\n",
"\t<fct> | <chr> | <dbl> |
\n",
"\n",
"\n",
"\tsetosa | Sepal.Length | 5.1 |
\n",
"\tsetosa | Sepal.Width | 3.5 |
\n",
"\tsetosa | Petal.Length | 1.4 |
\n",
"\tsetosa | Petal.Width | 0.2 |
\n",
"\tsetosa | Sepal.Length | 4.9 |
\n",
"\tsetosa | Sepal.Width | 3.0 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A tibble: 6 × 3\n",
"\\begin{tabular}{lll}\n",
" Species & name & value\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t setosa & Sepal.Length & 5.1\\\\\n",
"\t setosa & Sepal.Width & 3.5\\\\\n",
"\t setosa & Petal.Length & 1.4\\\\\n",
"\t setosa & Petal.Width & 0.2\\\\\n",
"\t setosa & Sepal.Length & 4.9\\\\\n",
"\t setosa & Sepal.Width & 3.0\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 6 × 3\n",
"\n",
"| Species <fct> | name <chr> | value <dbl> |\n",
"|---|---|---|\n",
"| setosa | Sepal.Length | 5.1 |\n",
"| setosa | Sepal.Width | 3.5 |\n",
"| setosa | Petal.Length | 1.4 |\n",
"| setosa | Petal.Width | 0.2 |\n",
"| setosa | Sepal.Length | 4.9 |\n",
"| setosa | Sepal.Width | 3.0 |\n",
"\n"
],
"text/plain": [
" Species name value\n",
"1 setosa Sepal.Length 5.1 \n",
"2 setosa Sepal.Width 3.5 \n",
"3 setosa Petal.Length 1.4 \n",
"4 setosa Petal.Width 0.2 \n",
"5 setosa Sepal.Length 4.9 \n",
"6 setosa Sepal.Width 3.0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pivot_longer(iris, cols = -Species) %>%\n",
" head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. À partir du jeu de données précédent, créez le boxplot attendu. "
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nkf2lWdr4IR2FEEIbHxfx51bDyQhDtohITXCru5HVKkS9lys1ytG7SQghnAP6DO2+9Ofvsg8J\n4X+VfVQbw00pivcgIw6oB8GueQKjo72cvMd8mDZAX/dGZ7VaWCyWmmXjAcNB1Q3/vLtbh+qn\nj8L9+wpt1HRj2nXo4FGRnX1cXH9N9YqT2dm132ReWbbEWqn7nOMSOqv+k/HVT2XlscM7V2/t\nFx8X8H7G6l2GKr/k+i73Ee3CO+gr9h84KrpdmELI279f0m7KWLfC2jf1ukt9UHm2qFzodDoh\nmvE4P3rgQIXoUT3lYzxwIFe0v6l99f8Zbq3F3nqQEQfUgzchzaNKuHPM9Tnvz1yx9Y+C0srK\n8sJjmf9Z/tIbm04LIURQYJDIO5B5pvLCG3RtWPsA054fNh4uPm8szt327qyPD9T/1r1sY1pK\no1+M2WTTjUoYNjz66Nr5K3bllRhLT6R//MaanNo3X1m2xFqr+zzi48NFzvc/HIuMi7t4RXlE\nfJxmx/ebSxr8Pq2E2++MOb523gc7jpdUlOTtWv7GmoO1b5aom4x/rJk+ecbyn3MKKyqNxXl7\n181+71dL2KDkOCGa8Tiv2PruvA3Zp8vLz2R/O3/ZL8697xwUJATDrTXZXQ8y4oC6mLFrrsAB\nz77muXr5mteemJtf4eIT3DH+Lyl39/YVQojAQfelZr759sR7ZpVVhtz9+uLR0aOefvjsm6um\njVtSqfEN7zJgRPK56m8/b9qFS8RqaAekfTqp4aYbpbrmjmemlS95743HVpepfcITU+7q9+ey\nXJeLXzpVp+yIqzwkjqSVui84Id7PfLjQLy4+8OIqp9j4zpYf0526JNRzuY8QQojQ2595rnzx\nu/Mnf17dTffeenZJ1qXK5emmbuNmPblpw3drZk+ZX1iu9vQLjuz+yCvDk6MvHJdG+kgIIRKG\njwrcteiZFXmnTZ6R3SfMmHDzha+bYLi1GvvrQUYcUIfKauVtSVtxdsM/xy71fPrjp7qT5+FQ\nfp0z/KVzEz5NG6ht+r72guFWmyP2IOCgOBUrtdwNS1ZsyT5Vcr7i7NFdn8xemeHXf9ANvMwA\ntsBwA2AHeNaRWtjN3V2XLU17+3CBySMgrPPQfz06vItG6aIAOTHcANgBTsUCAABIglOxAAAA\nkiDYAQAASIJgBwAAIAmCHQAAgCQIdgAAAJIg2AEAAEiCYAcAACAJgh0AAIAkCHaAjL55wEOl\n6vX68aJfF47rc62fu6vON7LX2DnbztS+U0XuT+8+m9qva1SQh6urh3/EjbdNXPRLvqWe/Rw7\n9eOs1B6Rvu4677DEETN/LBBCiDNb5z/YNybQQ6vz7zTw8VU5pitqsJ7eueypO3tcG6jXanTe\n7bsMnrhwayFfiA4AtsQvTwAy+uYBj8FLY+653/zZsj3nL612v2WeYfOk8OqFkwt6BU/65YoN\n1VFPfL9n9i1ul+1nRGrFZyv2VdXcSddjzrZXTo5OnmW4tG+nTs/9lvnvrhffK1r//PTenqkr\njlzaSAgh1JEPrt351hCfFvkbAQB1MGMHSCv9o9Uu9y3dknOqtPzskZ8X3d5elP00b+meizer\n3CMHTFywfvu+Y0XGyopzp/7Y9umUJNc/5s38uPiK/XzytfcjH24/crqsNH/v6ofjXSq2zuib\nstjp3nc2/5FfWnZ6//opSTrL/jfmfmW+uEnB8ofHrTiiSRg7/+s9x0+XG0vzsze/M66L5uDb\nD7+wzSwAADZiBSCfDePchdANfOtkrXUnF/QRQtz2ftnFFZbTu96delfvziHeWrXq0pPCNZN/\nvWI/ty7Nv7Qb48rhGiFU3WcfvrSuasNYLyESZx65sFy4sK9KON+y6M/Lq8qcEStE5D92ttzf\nCQC4jFqpQAnA1jr36RNYazEwIsJN/KekpEQINyFExdZnevV9ZV9lnc0qKiouXxH7l1v8Ly25\ndugQJITqllvCL61z7tAhVIhTp04J0UEIIbIyM63CvGVSmHqSEFarVVit1ur/COFy9KgQiS32\nRwIAauFULCAtnU532bJKpbqYroQoXTVz7r5K/+Tpn+3442RxRaXZYrVaM6bF1LMfrVZbZzf1\nrbNYLn7wovp/VrPZbDabLRaLxWq92K4wVdbNkgCAlsGMHdA2HT90qFIE3j097Y4bL66yHPxm\nU44QLfDRhphOnVQiPWXln1+M9Prf9wYAaC5m7IC2Kax9e5XIX/v6gp+PFBuNxXl7v54zYsg/\nd1ia3rIZgkaMG+Jevvah5PELv/ztSME5Y2V5YW7W9q/efGp4r6e/b5EmAAD1INgBbZP77RNS\nA63HP5vUu6O3Tud9TZehU9a7j7g7vmX2HjT27ff/L7pi19uP3JbYMcBL5+ruHx53818fenXN\n7sIrv+8OANBiCHZAG9Vu2JIfVjwx+Lr2PjqtZ3Bs8oQFP30/43rXFtq7Knj4u7/99smMMcnX\nhfnoXDQegRHxPW9/ZM7nW2clt1ATAIA6+IJiAAAASTBjBwAAIAmCHQAAgCQIdgAAAJIg2AEA\nAEiCYAcAACAJgh0AAIAkCHYAAACSINgBAABIgmAHAAAgCYIdAACAJAh2AAAAkvh/rgHZMTT8\ntxEAAAAASUVORK5CYII=",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"pivot_longer(iris, cols = -Species) %>%\n",
" ggplot(mapping = aes(x = name, y = value)) + geom_boxplot(mapping = aes(fill = name))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Avec la fonction `separate()` séparez le data frame suivant en trois colonnes : Year, Month et Day "
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 13 × 1\n",
"\n",
"\tDate |
\n",
"\t<date> |
\n",
"\n",
"\n",
"\t2017-01-01 |
\n",
"\t2017-01-02 |
\n",
"\t2017-01-03 |
\n",
"\t2017-01-04 |
\n",
"\t2017-01-05 |
\n",
"\t2017-01-06 |
\n",
"\t2017-01-07 |
\n",
"\t2017-01-08 |
\n",
"\t2017-01-09 |
\n",
"\t2017-01-10 |
\n",
"\t2017-01-11 |
\n",
"\t2017-01-12 |
\n",
"\t2017-01-13 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 13 × 1\n",
"\\begin{tabular}{l}\n",
" Date\\\\\n",
" \\\\\n",
"\\hline\n",
"\t 2017-01-01\\\\\n",
"\t 2017-01-02\\\\\n",
"\t 2017-01-03\\\\\n",
"\t 2017-01-04\\\\\n",
"\t 2017-01-05\\\\\n",
"\t 2017-01-06\\\\\n",
"\t 2017-01-07\\\\\n",
"\t 2017-01-08\\\\\n",
"\t 2017-01-09\\\\\n",
"\t 2017-01-10\\\\\n",
"\t 2017-01-11\\\\\n",
"\t 2017-01-12\\\\\n",
"\t 2017-01-13\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 13 × 1\n",
"\n",
"| Date <date> |\n",
"|---|\n",
"| 2017-01-01 |\n",
"| 2017-01-02 |\n",
"| 2017-01-03 |\n",
"| 2017-01-04 |\n",
"| 2017-01-05 |\n",
"| 2017-01-06 |\n",
"| 2017-01-07 |\n",
"| 2017-01-08 |\n",
"| 2017-01-09 |\n",
"| 2017-01-10 |\n",
"| 2017-01-11 |\n",
"| 2017-01-12 |\n",
"| 2017-01-13 |\n",
"\n"
],
"text/plain": [
" Date \n",
"1 2017-01-01\n",
"2 2017-01-02\n",
"3 2017-01-03\n",
"4 2017-01-04\n",
"5 2017-01-05\n",
"6 2017-01-06\n",
"7 2017-01-07\n",
"8 2017-01-08\n",
"9 2017-01-09\n",
"10 2017-01-10\n",
"11 2017-01-11\n",
"12 2017-01-12\n",
"13 2017-01-13"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data.frame(Date = as.Date('2017-01-01') + 0:12)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 13 × 3\n",
"\n",
"\tYear | Month | Day |
\n",
"\t<chr> | <chr> | <chr> |
\n",
"\n",
"\n",
"\t2017 | 01 | 01 |
\n",
"\t2017 | 01 | 02 |
\n",
"\t2017 | 01 | 03 |
\n",
"\t2017 | 01 | 04 |
\n",
"\t2017 | 01 | 05 |
\n",
"\t2017 | 01 | 06 |
\n",
"\t2017 | 01 | 07 |
\n",
"\t2017 | 01 | 08 |
\n",
"\t2017 | 01 | 09 |
\n",
"\t2017 | 01 | 10 |
\n",
"\t2017 | 01 | 11 |
\n",
"\t2017 | 01 | 12 |
\n",
"\t2017 | 01 | 13 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 13 × 3\n",
"\\begin{tabular}{lll}\n",
" Year & Month & Day\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t 2017 & 01 & 01\\\\\n",
"\t 2017 & 01 & 02\\\\\n",
"\t 2017 & 01 & 03\\\\\n",
"\t 2017 & 01 & 04\\\\\n",
"\t 2017 & 01 & 05\\\\\n",
"\t 2017 & 01 & 06\\\\\n",
"\t 2017 & 01 & 07\\\\\n",
"\t 2017 & 01 & 08\\\\\n",
"\t 2017 & 01 & 09\\\\\n",
"\t 2017 & 01 & 10\\\\\n",
"\t 2017 & 01 & 11\\\\\n",
"\t 2017 & 01 & 12\\\\\n",
"\t 2017 & 01 & 13\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 13 × 3\n",
"\n",
"| Year <chr> | Month <chr> | Day <chr> |\n",
"|---|---|---|\n",
"| 2017 | 01 | 01 |\n",
"| 2017 | 01 | 02 |\n",
"| 2017 | 01 | 03 |\n",
"| 2017 | 01 | 04 |\n",
"| 2017 | 01 | 05 |\n",
"| 2017 | 01 | 06 |\n",
"| 2017 | 01 | 07 |\n",
"| 2017 | 01 | 08 |\n",
"| 2017 | 01 | 09 |\n",
"| 2017 | 01 | 10 |\n",
"| 2017 | 01 | 11 |\n",
"| 2017 | 01 | 12 |\n",
"| 2017 | 01 | 13 |\n",
"\n"
],
"text/plain": [
" Year Month Day\n",
"1 2017 01 01 \n",
"2 2017 01 02 \n",
"3 2017 01 03 \n",
"4 2017 01 04 \n",
"5 2017 01 05 \n",
"6 2017 01 06 \n",
"7 2017 01 07 \n",
"8 2017 01 08 \n",
"9 2017 01 09 \n",
"10 2017 01 10 \n",
"11 2017 01 11 \n",
"12 2017 01 12 \n",
"13 2017 01 13 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data.frame(Date = as.Date('2017-01-01') + 0:12) %>%\n",
"separate(col = Date, into = c(\"Year\", \"Month\", \"Day\"), sep = \"-\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R 4.0.2",
"language": "R",
"name": "r-4.0.2"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "4.0.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}