Quarto
Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org .
Running Code
When you click the Render button a document will be generated that includes both content and the output of embedded code. You can embed code like this:
-- Attaching core tidyverse packages ------------------------ tidyverse 2.0.0 --
v dplyr 1.1.2 v readr 2.1.4
v forcats 1.0.0 v stringr 1.5.0
v ggplot2 3.4.3 v tibble 3.2.1
v lubridate 1.9.2 v tidyr 1.3.0
v purrr 1.0.1
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
i Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library (dplyr)
library (readr)
library (DT)
library (ggplot2)
library (quantreg)
Loading required package: SparseM
Attaching package: 'SparseM'
The following object is masked from 'package:base':
backsolve
#| warning: true
#| echo: true
#| label: data_prepataion
rm (list = ls ())
setwd ("C:/Users/anune/OneDrive/Desktop/PIC_DataAnalysis_files" )
data_PIC <- read.csv ("PIC_65_FIRE.AN.1.csv" )
data_PIC<- mutate (data_PIC,day_0 = dmy (START_DAY),
ENTRY_DATE = date (as.POSIXct (ENTRY_TIME, format= "%m/%d/%Y %H:%M" )),
DAYS_IN_FEED = as.numeric (ENTRY_DATE - day_0))
summary (data_PIC$ DAYS_IN_FEED)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-364.0 14.0 31.0 31.2 48.0 68.0 25
data_PIC <- group_by (data_PIC, ID)
head (data_PIC)
# A tibble: 6 x 19
# Groups: ID [3]
ID LINE SIRE DAM LITTER PEN FARM ENTRY_TIME EXIT_TIME STAY_IN
<int> <int> <int> <int> <int> <chr> <int> <chr> <chr> <int>
1 96251326 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 649
2 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 1948
3 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 169
4 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 627
5 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 768
6 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 413
# i 9 more variables: FEED_INTK <int>, ENTRY_WT <int>, EXIT_WT <int>,
# FEEDER_NO <int>, START_DAY <chr>, OFFTEST_DAY <chr>, day_0 <date>,
# ENTRY_DATE <date>, DAYS_IN_FEED <dbl>
#| warning: true
#| echo: true
#| label: function_definition
perform_quantile_regression <- function (data_PIC, quantiles = quantiles) {
quantile_models <- rq (FEED_INTK ~ STAY_IN, data = data_PIC, tau = quantiles)
storage_quantiles <- predict (quantile_models)
colnames (storage_quantiles) <- c ("Q1" , "Q2" , "Q3" )
outlier_band <- as.data.frame (storage_quantiles) %>%
mutate (IQR = Q3 - Q1, LB = Q1 - 1.5 * IQR, UP = Q3 + 1.5 * IQR)
id_band <- cbind (data_PIC, outlier_band) %>% mutate (ol = (FEED_INTK > UP) | (FEED_INTK < LB))
return (id_band)
}
id_data1_outlier <- function (data1, quantiles = c (0.25 , 0.75 )) {
id_data1_results <- data1 %>%
mutate (Q1U = quantile (STAY_IN, probs = quantiles[1 ]),
Q3U = quantile (STAY_IN, probs = quantiles[2 ]),
IQRU = Q3U - Q1U,
UBU = Q3U + 1.5 * IQRU,
LBU = Q1U - 1.5 * IQRU,
ol2 = (STAY_IN > UBU) | (STAY_IN < LBU))
return (id_data1_results)
}
quantiles <- c (0.25 , 0.5 , 0.75 )
storage_bygroup <- perform_quantile_regression (data_PIC, quantiles = quantiles)
head (storage_bygroup)
# A tibble: 6 x 26
# Groups: ID [3]
ID LINE SIRE DAM LITTER PEN FARM ENTRY_TIME EXIT_TIME STAY_IN
<int> <int> <int> <int> <int> <chr> <int> <chr> <chr> <int>
1 96251326 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 649
2 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 1948
3 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 169
4 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 627
5 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 768
6 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 413
# i 16 more variables: FEED_INTK <int>, ENTRY_WT <int>, EXIT_WT <int>,
# FEEDER_NO <int>, START_DAY <chr>, OFFTEST_DAY <chr>, day_0 <date>,
# ENTRY_DATE <date>, DAYS_IN_FEED <dbl>, Q1 <dbl>, Q2 <dbl>, Q3 <dbl>,
# IQR <dbl>, LB <dbl>, UP <dbl>, ol <lgl>
storage_id_data1 <- id_data1_outlier (storage_bygroup, quantiles = c (0.25 , 0.75 ))
head (storage_id_data1)
# A tibble: 6 x 32
# Groups: ID [3]
ID LINE SIRE DAM LITTER PEN FARM ENTRY_TIME EXIT_TIME STAY_IN
<int> <int> <int> <int> <int> <chr> <int> <chr> <chr> <int>
1 96251326 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 649
2 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 1948
3 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 169
4 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 627
5 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 768
6 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 413
# i 22 more variables: FEED_INTK <int>, ENTRY_WT <int>, EXIT_WT <int>,
# FEEDER_NO <int>, START_DAY <chr>, OFFTEST_DAY <chr>, day_0 <date>,
# ENTRY_DATE <date>, DAYS_IN_FEED <dbl>, Q1 <dbl>, Q2 <dbl>, Q3 <dbl>,
# IQR <dbl>, LB <dbl>, UP <dbl>, ol <lgl>, Q1U <dbl>, Q3U <dbl>, IQRU <dbl>,
# UBU <dbl>, LBU <dbl>, ol2 <lgl>
storage_id_data1= mutate (storage_id_data1, olf= ol| ol2, olc = ol* 2 + ol2 )
head (storage_id_data1)
# A tibble: 6 x 34
# Groups: ID [3]
ID LINE SIRE DAM LITTER PEN FARM ENTRY_TIME EXIT_TIME STAY_IN
<int> <int> <int> <int> <int> <chr> <int> <chr> <chr> <int>
1 96251326 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 649
2 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 1948
3 96251327 65 91032775 9.22e7 7.80e7 B0113 774 10/27/202~ 10/27/20~ 169
4 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 627
5 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 768
6 96284921 65 90218081 9.02e7 7.81e7 B0113 774 10/27/202~ 10/27/20~ 413
# i 24 more variables: FEED_INTK <int>, ENTRY_WT <int>, EXIT_WT <int>,
# FEEDER_NO <int>, START_DAY <chr>, OFFTEST_DAY <chr>, day_0 <date>,
# ENTRY_DATE <date>, DAYS_IN_FEED <dbl>, Q1 <dbl>, Q2 <dbl>, Q3 <dbl>,
# IQR <dbl>, LB <dbl>, UP <dbl>, ol <lgl>, Q1U <dbl>, Q3U <dbl>, IQRU <dbl>,
# UBU <dbl>, LBU <dbl>, ol2 <lgl>, olf <lgl>, olc <dbl>
datatable (storage_id_data1)
Warning in instance$preRenderHook(instance): It seems your data is too big for
client-side DataTables. You may consider server-side processing:
https://rstudio.github.io/DT/server.html