library(sunburstR)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(readr)
library(htmlwidgets)
data <- read_csv("~/Downloads/DATA VISUALIZATION/Final Project/master Data/All India level Person Arrested under Cyber Crime (IT Act + IPC Section) by Age Group during 2002-2011.csv")
## Rows: 176 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): Category, Crime Head
## dbl (7): Below 18 Years, Between 18 - 30 Years, Between 30 -45 Years, Betwee...
##
## ℹ 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.
# Transform data to hierarchical structure
data_sunburst <- data %>%
select(Category, `Crime Head`, Year, `Total (All Age Groups)`) %>%
mutate(path = paste(Category, `Crime Head`, Year, sep = "-")) %>%
select(path, total = `Total (All Age Groups)`)
head(data_sunburst)
## # A tibble: 6 × 2
## path total
## <chr> <dbl>
## 1 Offences under IT Act-Tampering Computer Source Department (Sec 65)-2002 7
## 2 Offences under IT Act-Hacking Computer Systems - i) Loss/ Damage to Com… 4
## 3 Offences under IT Act-Hacking Computer Systems - ii) Hacking (Sec 66(2)… 35
## 4 Offences under IT Act-Obscene Publication/ Transmission in Electronic F… 15
## 5 Offences under IT Act-Failure - i) of Compliance/ Orders of Certifying … 0
## 6 Offences under IT Act-Failure - ii) To Assist to Decoy or the Informati… 0
sunburst(data_sunburst, count = TRUE, percent = TRUE)
data_sunburst <- data %>%
filter(Category != "Grand Total (Offences under IT Act + IPC)") %>%
select(Year, Category, `Crime Head`,
`Below 18 Years`, `Between 18 - 30 Years`,
`Between 30 -45 Years`, `Between 45 - 60 Years`,
`Above 60 Years`) %>%
pivot_longer(cols = c(`Below 18 Years`, `Between 18 - 30 Years`,
`Between 30 -45 Years`, `Between 45 - 60 Years`,
`Above 60 Years`),
names_to = "Age_Group",
values_to = "Total_Arrested") %>%
filter(Total_Arrested > 0) %>%
mutate(path = paste(Year, Age_Group, Category, `Crime Head`, sep = "-")) %>%
select(path, total = Total_Arrested)
# Preview your hierarchical data
head(data_sunburst)
## # A tibble: 6 × 2
## path total
## <chr> <dbl>
## 1 2002-Between 18 - 30 Years-Offences under IT Act-Tampering Computer Sou… 4
## 2 2002-Between 30 -45 Years-Offences under IT Act-Tampering Computer Sour… 3
## 3 2002-Between 18 - 30 Years-Offences under IT Act-Hacking Computer Syste… 4
## 4 2002-Between 18 - 30 Years-Offences under IT Act-Hacking Computer Syste… 28
## 5 2002-Between 30 -45 Years-Offences under IT Act-Hacking Computer System… 5
## 6 2002-Between 45 - 60 Years-Offences under IT Act-Hacking Computer Syste… 1
data_sunburst <- data %>%
filter(Category != "Grand Total (Offences under IT Act + IPC)") %>%
select(Category, `Crime Head`, Year,
`Below 18 Years`, `Between 18 - 30 Years`,
`Between 30 -45 Years`, `Between 45 - 60 Years`,
`Above 60 Years`) %>%
pivot_longer(
cols = c(`Below 18 Years`, `Between 18 - 30 Years`,
`Between 30 -45 Years`, `Between 45 - 60 Years`,
`Above 60 Years`),
names_to = "Age_Group",
values_to = "Total_Arrested"
) %>%
filter(Total_Arrested > 0) %>%
mutate(path = paste(Category, `Crime Head`, Year, Age_Group, sep = "-")) %>%
select(path, total = Total_Arrested)
head(data_sunburst)
## # A tibble: 6 × 2
## path total
## <chr> <dbl>
## 1 Offences under IT Act-Tampering Computer Source Department (Sec 65)-200… 4
## 2 Offences under IT Act-Tampering Computer Source Department (Sec 65)-200… 3
## 3 Offences under IT Act-Hacking Computer Systems - i) Loss/ Damage to Com… 4
## 4 Offences under IT Act-Hacking Computer Systems - ii) Hacking (Sec 66(2)… 28
## 5 Offences under IT Act-Hacking Computer Systems - ii) Hacking (Sec 66(2)… 5
## 6 Offences under IT Act-Hacking Computer Systems - ii) Hacking (Sec 66(2)… 1
nrow(data_sunburst)
## [1] 336
sunburst(data_sunburst, count = TRUE, percent = TRUE)