--- title: "Get Started" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Get Started} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ``` {r, echo=FALSE,include = FALSE} library(acledR) library(dplyr) ``` This vignette provides a brief overview of the acledR package. You can find more detailed explanations and examples under the 'Using acledR' tab. For general information on ACLED’s methodology, please visit [ACLED's Knowledge Base](https://acleddata.com/knowledge-base/). The main objectives of this package are: 1. Facilitating access to ACLED data via ACLED's API 2. Simplifying the manipulation of ACLED data This package was designed with the following workflow in mind: ```{r, out.width = "500px", echo = FALSE} knitr::include_graphics("workflow.png") ``` You can begin by installing and then loading the package: ```{r, eval=FALSE} # Install acledR install.packages("acledR") # from CRAN devtools::install_github("ACLED/acledR") # or from github. # Load acledR library(acledR) ``` ## Authenticating your credentials - `acled_access()` ACLED API access requires an API key for authentication. To register for API access, please visit ACLED's Access Portal [here](https://developer.acleddata.com/). You can also find a detailed guide on creating your account and obtaining your API key in [ACLED's Access Guide](https://acleddata.com/acleddatanew//wp-content/uploads/2021/11/ACLED_Access-Guide_October-2020.pdf). Once you are registered, we encourage authenticating your credentials using the `acled_access()` function. Using this function both ensures that your credentials are working as intended and saves them in your R environment, eliminating the need for repeated authentication with each API request. ```{r, eval=FALSE} acled_access(email = "email@example.com", key = "your_key") # This is an example, you will need to input your credentials. ``` If the authentication was successful, you will find a message in the console stating that your credentials were authorized. ## Requesting data from ACLED’s API - `acled_api()` After authenticating your credentials, you can request data from the API using the `acled_api()` function. This function accepts several fields for filtering and formatting ACLED data. As a running example, let's request all events in Argentina throughout 2022: ```{r, eval=FALSE} argentinian_data <- acled_api( # Country of interest country = "Argentina", # Earliest date for requested events start_date ="2022-01-01", # Last date for requested events end_date = "2022-12-31", # Request 'inter codes' in numeric rather than text form inter_numeric = TRUE, # Turn off acled_api() interactive prompt prompt = FALSE ) ``` Note that while this example uses only five arguments (`country`, `start_date`, `end_date`, `inter_numeric`, and `prompt`), `acled_api()` accepts several other useful arguments, descriptions of which can be found in `vignette("acled_api")`. If you do not use the `acled_access` function to store your credentials, you will also need to specify your email and API key in each request. The `acled_api()` function does not place constraints on the amount of data requested. As a result, users are able to make potentially very large requests (e.g. events for all countries and years at once) which might strain ACLED's API. For performance reasons, `acled_api()` breaks large requests into multiple smaller requests. You can find more about how `acled_api()` subsets requests by visiting in the `acled_api()` vignette. ## Updating ACLED Data - `acled_update()` ACLED data are regularly updated. You can ensure that your own dataset remains current by using the `acled_update()` function. `acled_update()` is designed to handle the intricacies of updating your ACLED dataset, accounting for new events, modifications to existing events, and event deletions. To update your dataset, provide the `acled_update` function a dataframe of your old dataset. Note that there are other options providing more control over how your dataset is updated, more information for which can be found in the `vignette("acled_update")`. Here is an example of how you can use `acled_update()` to update an old dataset: ```{r, eval = FALSE} new_data <- acled_update(acledR::acled_old_deletion_dummy, inter_numeric = TRUE, prompts = FALSE) ``` ## Transforming ACLED Data - `acled_transform_*` ACLED data has a unique structure which can complicate data manipulation. The `acledR` package provides a suite of functions to simplify this process. You can find a more in-depth treatment of ACLED’s data transformation functions by visiting the `vignette("acled_transformations")`. ### 1. Reshaping Data: Wide to Long Format - `acled_transform_longer()` The `acled_transform_longer()` function transforms ACLED data from a wide format, where multiple actors are represented in each row, to a long format, with separate rows for each actor. This is particularly useful for actor-based analyses. ```{r} long_data <- acled_transform_longer(acledR::acled_old_dummy, type = "full_actors") head(long_data) ``` You can specify the type of transformation using the type argument, choosing from `full_actors`, `main_actors`, `assoc_actors`, or `source`. For instance, specifying `full_actors` will result in you transforming the data frame such that every actor and associate actor for a given event is represented in a separate row. This function provides flexibility and control over the transformation process, allowing you to tailor the data structure to your specific needs. ### 2. Reshaping Data: Long to Wide Format - `acled_transform_wider()` Conversely, the `acled_transform_wider()` function enables you to pivot your data back to a wide format. This function may be useful if you used `acled_transform_longer()` and wish to revert to the original data structure. ```{r} wide_data <- acled_transform_wider(long_data, type = "full_actors") head(wide_data) ``` Like its counterpart, this function requires the data and type arguments. ### 3. Converting Interaction Codes - `acled_transform_interaction()` The `acled_transform_interaction()` function allows you to convert between numeric and text interaction codes, facilitating easier interpretation and analysis of ACLED data. The function requires your ACLED dataset and an optional boolean argument `only_inters`, which determines whether to include only `inter1` and `inter2` columns or also the `interaction` column in the output. By default, `only_inters` is set to `FALSE`. Note further that the `acled_api()` function returns interaction codes as text strings by default, making this function most useful when the original API call included the parameter value `inter_numeric = TRUE`, as in the running example. ```{r} transformed_data <- acled_transform_interaction(acledR::acled_old_dummy) # Note the inter1 and inter2 columns head(transformed_data) ``` ----