Code
library(tidyverse)
library(readr)
::opts_chunk$set(echo = TRUE) knitr
Surya Praneeth Reddy Chirasani
January 7, 2023
# A tibble: 9 × 17
IPCC A…¹ Cattl…² Cattl…³ Buffa…⁴ Swine…⁵ Swine…⁶ Chick…⁷ Chick…⁸ Ducks Turkeys
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Indian … 275 110 295 28 28 0.9 1.8 2.7 6.8
2 Eastern… 550 391 380 50 180 0.9 1.8 2.7 6.8
3 Africa 275 173 380 28 28 0.9 1.8 2.7 6.8
4 Oceania 500 330 380 45 180 0.9 1.8 2.7 6.8
5 Western… 600 420 380 50 198 0.9 1.8 2.7 6.8
6 Latin A… 400 305 380 28 28 0.9 1.8 2.7 6.8
7 Asia 350 391 380 50 180 0.9 1.8 2.7 6.8
8 Middle … 275 173 380 28 28 0.9 1.8 2.7 6.8
9 Norther… 604 389 380 46 198 0.9 1.8 2.7 6.8
# … with 7 more variables: Sheep <dbl>, Goats <dbl>, Horses <dbl>, Asses <dbl>,
# Mules <dbl>, Camels <dbl>, Llamas <dbl>, and abbreviated variable names
# ¹`IPCC Area`, ²`Cattle - dairy`, ³`Cattle - non-dairy`, ⁴Buffaloes,
# ⁵`Swine - market`, ⁶`Swine - breeding`, ⁷`Chicken - Broilers`,
# ⁸`Chicken - Layers`
The data for each animal for each area is in one row, I want to pivot the data from the columns to rows using pivot_longer, so that I can group by each area and get summary statistics for each area. These statistics cannot be calculated easily in the present format, for this reason I want to pivot the data. There are 16 lifestock types across the 9 regions which when we pivot to rows, the total number of results will be 16*9=144 rows
# A tibble: 144 × 3
`IPCC Area` animal weight
<chr> <chr> <dbl>
1 Indian Subcontinent Cattle - dairy 275
2 Indian Subcontinent Cattle - non-dairy 110
3 Indian Subcontinent Buffaloes 295
4 Indian Subcontinent Swine - market 28
5 Indian Subcontinent Swine - breeding 28
6 Indian Subcontinent Chicken - Broilers 0.9
7 Indian Subcontinent Chicken - Layers 1.8
8 Indian Subcontinent Ducks 2.7
9 Indian Subcontinent Turkeys 6.8
10 Indian Subcontinent Sheep 28
# … with 134 more rows
After pivoting the data, the dimension of the tibble is 144x3 which is as expected
---
title: "Challenge 3: Pivoting"
author: "Surya Praneeth Reddy Chirasani"
desription: "Pivoting data in a dataset"
date: "01/07/2023"
format:
html:
toc: true
code-fold: true
code-copy: true
code-tools: true
categories:
- challenge3
- tidydata
- pivot_longer
---
```{r}
#| label: setup
#| warning: false
library(tidyverse)
library(readr)
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
animal_weights <-read_csv("_data/animal_weight.csv", show_col_types = FALSE)
animal_weights
```
The data for each animal for each area is in one row, I want to pivot the data from the columns to rows using pivot_longer, so that I can group by each area and get summary statistics for each area. These statistics cannot be calculated easily in the present format, for this reason I want to pivot the data. There are 16 lifestock types across the 9 regions which when we pivot to rows, the total number of results will be 16*9=144 rows
```{r}
pivot_longer(animal_weights, 2:ncol(animal_weights), names_to = "animal", values_to = "weight")
```
After pivoting the data, the dimension of the tibble is 144x3 which is as expected