---
title: "f_table()"
output:
  rmarkdown::html_vignette:
    fig_width: 5
    fig_height: 4
    self_contained: false
vignette: |
  %\VignetteIndexEntry{f_table()} 
  %\VignetteEngine{knitr::rmarkdown} 
  \usepackage[utf8]{inputenc}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(tidy = FALSE)
```

```{r echo = FALSE}
library(YEAB)
```

## Introduction

After getting a vector of response events sorted by bins from a raw time vector, it is often necessary to create frequency tables in order to analyze the response distribution for a given experimental trial or session. Here we introduce a function to do so. The function takes a vector of 'binarized' responses as input and outputs a data frame with 3 columns:

- `bins` which is the bin index for every data point.
- `freq` the frequency of each bin.
- `prop` the frequency expressed as a proportion of the total responses.

The `f_table()` takes the following parameters:

- `x` the numeric vector of binned time data.
- `min_x` the minimum value of the binned distribution.
- `max_x` the maximum value of the binned distribution.
- `bin_res` the bin resolution for 

This function includes zero-frequency bins in the given interval.

## Example 

First let's load a data sample of response times:

```{r}
data("r_times")

r_times
```

Now we will use the `get_bins()` function included in this package (see `get_bins.Rmd` for further details) to convert the raw data points into time bins and then create the frequency table with `f_table`:

```{r}
bin_res <- 10 # Lower values will create a higher resolution distribution and vice-versa.
min_x <- 0 # We use 0 as a starting point in order to get a distribution for the complete duration of the trail.
max_x <- 180 # In this specific example the total trail duration was 3 minutes.
binarized_data <- get_bins(r_times, min_x, max_x, bin_res)
data_ftable <- f_table(binarized_data, min_x, max_x, bin_res)

data_ftable
```

Finally let's plot the data to visualize the resulting structure:

```{r, echo = FALSE}
plot(data_ftable$bins, data_ftable$prop,
  xlab = "Time bins",
  ylab = "Response proportion",
  pch = 21,
  bg = "black"
)
```