report

:scroll: :tada: Automated reporting of objects in R

https://github.com/easystats/report

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 42 committers (2.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.7%) to scientific vocabulary

Keywords

anovas apa automated-report-generation automatic bayesian describe easystats hacktoberfest manuscript models r r-package report reporting reports rstats scientific statsmodels

Keywords from Contributors

standardization correlation predict estimate robust bayes-factors bayesfactor bayesian-framework credible-interval hdi
Last synced: 6 months ago · JSON representation

Repository

:scroll: :tada: Automated reporting of objects in R

Basic Info
Statistics
  • Stars: 708
  • Watchers: 17
  • Forks: 72
  • Open Issues: 112
  • Releases: 9
Topics
anovas apa automated-report-generation automatic bayesian describe easystats hacktoberfest manuscript models r r-package report reporting reports rstats scientific statsmodels
Created about 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Support

README.Rmd

---
output: github_document
---

# report 

```{r, message=FALSE, warning=FALSE, echo=FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  dpi = 300,
  fig.path = "man/figures/",
  comment = "#",
  message = FALSE,
  warning = FALSE
)

options(
  knitr.kable.NA = "",
  digits = 4,
  width = 80
)

library(dplyr)
library(report)
```

[![R-CMD-check](https://github.com/easystats/report/workflows/R-CMD-check/badge.svg?branch=main)](https://github.com/easystats/report/actions)
[![CRAN](http://www.r-pkg.org/badges/version/report)](https://cran.r-project.org/package=report)
[![r-universe](https://easystats.r-universe.dev/badges/report)](https://easystats.r-universe.dev/report)
[![downloads](http://cranlogs.r-pkg.org/badges/report)](https://cran.r-project.org/package=report)
[![total](https://cranlogs.r-pkg.org/badges/grand-total/report)](https://cranlogs.r-pkg.org/)
[![stars](https://img.shields.io/github/stars/easystats/report?style=social)](https://github.com/easystats/report/stargazers)

***"From R to your manuscript"***

**report**'s primary goal is to bridge the gap between R's output and the formatted results contained in your manuscript. It automatically produces reports of models and data frames according to **best practices** guidelines (e.g., [APA](https://apastyle.apa.org/)'s style), ensuring **standardization** and **quality** in results reporting.

```{r}
library(report)

model <- lm(Sepal.Length ~ Species, data = iris)
report(model)
```

## Installation

The package is available on `CRAN` and can be downloaded by running:

```{r eval=FALSE}
install.packages("report")
```

If you would instead like to experiment with the development version, you can
download it from `GitHub`:

```{r eval=FALSE}
install.packages("remotes")
remotes::install_github("easystats/report") # You only need to do that once
```

Load the package every time you start R

```{r}
library("report")
```

> **Tip**
>
> **Instead of `library(report)`, use `library(easystats)`.**
> **This will make all features of the  easystats-ecosystem available.**
>
> **To stay updated, use `easystats::install_latest()`.**

## Documentation

The package documentation can be found [**here**](https://easystats.github.io/report/). 

## Report all the things 

All the things meme by Allie Brosh

### General Workflow

The `report` package works in a two step fashion. First, you create a `report` object with the `report()` function. Then, this report object can be displayed either textually (the default output) or as a table, using `as.data.frame()`. Moreover, you can also access a more digest and compact version of the report using `summary()` on the report object.

[![workflow](man/figures/workflow.png)](https://easystats.github.io/report/)

The `report()` function works on a variety of models, as well as other objects such as dataframes:

```{r, eval=FALSE}
report(iris)
```
```{r echo=FALSE}
print(report(iris), width = 80)
```

These reports nicely work within the [*tidyverse*](https://github.com/tidyverse) workflow:

```{r, eval=FALSE}
iris %>%
  select(-starts_with("Sepal")) %>%
  group_by(Species) %>%
  report() %>%
  summary()
```

```{r echo=FALSE}
iris %>%
  select(-starts_with("Sepal")) %>%
  group_by(Species) %>%
  report() %>%
  summary() %>%
  print(width = 80)
```


### *t*-tests and correlations

Reports can be used to automatically format tests like *t*-tests or correlations.

```{r, eval=FALSE}
report(t.test(mtcars$mpg ~ mtcars$am))
```

```{r echo=FALSE}
t.test(mtcars$mpg ~ mtcars$am) %>%
  report() %>%
  print(width = 80)
```

As mentioned, you can also create tables with the `as.data.frame()` functions, like for example with this correlation test:

```{r, error=TRUE}
cor.test(iris$Sepal.Length, iris$Sepal.Width) %>%
  report() %>%
  as.data.frame()
```

### ANOVAs

This works great with ANOVAs, as it includes **effect sizes** and their interpretation.

```{r, eval=FALSE}
aov(Sepal.Length ~ Species, data = iris) %>%
  report()
```

```{r echo=FALSE}
aov(Sepal.Length ~ Species, data = iris) %>%
  report() %>%
  print(width = 80)
```

### Generalized Linear Models (GLMs)

Reports are also compatible with GLMs, such as this **logistic regression**:

```{r, eval=FALSE}
model <- glm(vs ~ mpg * drat, data = mtcars, family = "binomial")

report(model)
```

```{r echo=FALSE}
glm(vs ~ mpg * drat, data = mtcars, family = "binomial") %>%
  report() %>%
  print(width = 80)
```

### Mixed Models

Mixed models, whose popularity and usage is exploding, can also be reported:

```{r, eval=FALSE}
library(lme4)

model <- lme4::lmer(Sepal.Length ~ Petal.Length + (1 | Species), data = iris)

report(model)
```

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

lme4::lmer(Sepal.Length ~ Petal.Length + (1 | Species), data = iris) %>%
  report() %>%
  print(width = 80)
```


### Bayesian Models

Bayesian models can also be reported using the new [**SEXIT**](https://easystats.github.io/bayestestR/reference/sexit.html) framework, which combines clarity, precision and usefulness.

```{r, eval=FALSE}
library(rstanarm)

model <- stan_glm(mpg ~ qsec + wt, data = mtcars)

report(model)
```

```{r echo=FALSE}
options(mc.cores = parallel::detectCores())
library(rstanarm)

model <- stan_glm(mpg ~ qsec + wt, data = mtcars, refresh = 0, iter = 1000) %>%
  report() %>%
  print(width = 80)
```

## Other types of reports

### Specific parts

One can, for complex reports, directly access the pieces of the reports:

```{r}
model <- lm(Sepal.Length ~ Species, data = iris)

report_model(model)

report_performance(model)

report_statistics(model)
```

### Report participants' details

This can be useful to complete the **Participants** paragraph of your manuscript.

```{r, eval=FALSE}
data <- data.frame(
  "Age" = c(22, 23, 54, 21),
  "Sex" = c("F", "F", "M", "M")
)

paste(
  report_participants(data, spell_n = TRUE),
  "were recruited in the study by means of torture and coercion."
)
```

```{r echo=F}
data <- data.frame(
  "Age" = c(22, 23, 54, 21),
  "Sex" = c("F", "F", "M", "M")
)

paste(
  report_participants(data, spell_n = TRUE),
  "were recruited in the study by means of torture and coercion."
) |>
  insight::format_message() %>%
  cat()
```

### Report sample

Report can also help you create a sample description table (also referred to as **Table 1**).

```{r, eval=FALSE}
report_sample(iris, by = "Species")
```

```{r, echo=FALSE}
knitr::kable(report_sample(iris, by = "Species"))
```

### Report system and packages

Finally, **report** includes some functions to help you write the data analysis paragraph about the tools used.

```{r, eval=FALSE}
report(sessionInfo())
```

```{r echo=FALSE}
report(sessionInfo()) %>%
  print(width = 80)
```

## Credits

If you like it, you can put a *star* on this repo, and cite the package as follows:

```{r, citation, comment=""}
citation("report")
```

## Contribute

***report* is a young package in need of affection**. You can easily be a part of the [developing](https://github.com/easystats/report/blob/master/.github/CONTRIBUTING.md) community of this open-source software and improve science! Don't be shy, try to code and submit a pull request (See the [contributing guide](https://github.com/easystats/report/blob/master/.github/CONTRIBUTING.md)). Even if it's not perfect, we will help you make it great!

## Code of Conduct

Please note that the report project is released with a [Contributor Code of Conduct](https://easystats.github.io/report/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.

Owner

  • Name: easystats
  • Login: easystats
  • Kind: organization
  • Location: worldwide

Make R stats easy!

GitHub Events

Total
  • Create event: 46
  • Release event: 2
  • Issues event: 37
  • Watch event: 18
  • Delete event: 33
  • Issue comment event: 107
  • Push event: 178
  • Pull request review comment event: 5
  • Pull request review event: 14
  • Pull request event: 65
  • Fork event: 3
Last Year
  • Create event: 46
  • Release event: 2
  • Issues event: 37
  • Watch event: 18
  • Delete event: 33
  • Issue comment event: 107
  • Push event: 178
  • Pull request review comment event: 5
  • Pull request review event: 14
  • Pull request event: 65
  • Fork event: 3

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 899
  • Total Committers: 42
  • Avg Commits per committer: 21.405
  • Development Distribution Score (DDS): 0.635
Past Year
  • Commits: 24
  • Committers: 7
  • Avg Commits per committer: 3.429
  • Development Distribution Score (DDS): 0.625
Top Committers
Name Email Commits
Dominique Makowski d****9@g****m 328
Daniel m****l@d****e 257
Indrajeet Patil p****e@g****m 172
Rémi Thériault 1****c 49
mattansb 3****b 15
github-actions[bot] 4****] 14
Brenton M. Wiernik b****k 11
Etienne Bacher 5****r 10
humanfactors m****1@g****m 4
mutlusun m****n 4
Michael MacAskill m****l@n****g 2
Florian Kohrt f****t@a****o 2
Abhijit Dasgupta a****a@g****m 2
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
runner r****r@M****l 1
and 12 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 124
  • Total pull requests: 139
  • Average time to close issues: 2 months
  • Average time to close pull requests: 14 days
  • Total issue authors: 62
  • Total pull request authors: 15
  • Average comments per issue: 2.66
  • Average comments per pull request: 2.72
  • Merged pull requests: 111
  • Bot issues: 0
  • Bot pull requests: 34
Past Year
  • Issues: 16
  • Pull requests: 39
  • Average time to close issues: 8 days
  • Average time to close pull requests: 4 days
  • Issue authors: 10
  • Pull request authors: 7
  • Average comments per issue: 0.81
  • Average comments per pull request: 1.15
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 17
Top Authors
Issue Authors
  • rempsyc (32)
  • IndrajeetPatil (7)
  • mattansb (6)
  • DominiqueMakowski (4)
  • M-Colley (4)
  • fkohrt (4)
  • strengejacke (3)
  • yuryzablotski (3)
  • alexisdmacintyre (2)
  • jmattnavarro (2)
  • gserapio (2)
  • yliat123 (2)
  • XiaoyuZeng (2)
  • RenyBB (2)
  • etiennebacher (2)
Pull Request Authors
  • rempsyc (57)
  • github-actions[bot] (37)
  • strengejacke (23)
  • etiennebacher (8)
  • Copilot (7)
  • DominiqueMakowski (6)
  • fkohrt (3)
  • IndrajeetPatil (3)
  • dtoher (2)
  • M-Colley (1)
  • vincentarelbundock (1)
  • 11rchitwood (1)
  • dependabot[bot] (1)
  • camden-bock (1)
  • mattansb (1)
Top Labels
Issue Labels
bug :bug: (16) enhancement :boom: (15) docs :books: (9) feature idea :fire: (8) 3 investigators :grey_question::question: (2) duplicate :two_men_holding_hands: (2) waiting for response :love_letter: (2) reprex :bar_chart: (2) Code formatting 👩‍💻 (2) low priority :sleeping: (1) what's your opinion :hear_no_evil: (1) phrasing :memo: (1) question :interrobang: (1) high priority :runner: (1)
Pull Request Labels
auto-update (37) docs :books: (3) bug :bug: (2) dependencies (1) github_actions (1)

Packages

  • Total packages: 2
  • Total downloads:
    • cran 5,344 last-month
  • Total docker downloads: 860
  • Total dependent packages: 4
    (may contain duplicates)
  • Total dependent repositories: 5
    (may contain duplicates)
  • Total versions: 19
  • Total maintainers: 1
proxy.golang.org: github.com/easystats/report
  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
cran.r-project.org: report

Automated Reporting of Results and Statistical Models

  • Versions: 12
  • Dependent Packages: 4
  • Dependent Repositories: 5
  • Downloads: 5,344 Last month
  • Docker Downloads: 860
Rankings
Stargazers count: 0.5%
Forks count: 1.0%
Downloads: 5.2%
Dependent packages count: 9.1%
Average: 9.1%
Dependent repos count: 13.2%
Docker downloads count: 25.4%
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.6 depends
  • bayestestR >= 0.13.0 imports
  • datawizard >= 0.6.5 imports
  • effectsize >= 0.8.2 imports
  • insight >= 0.18.8 imports
  • parameters >= 0.20.0 imports
  • performance >= 0.9.2 imports
  • stats * imports
  • tools * imports
  • utils * imports
  • brms * suggests
  • dplyr * suggests
  • ivreg * suggests
  • knitr * suggests
  • lavaan * suggests
  • lme4 * suggests
  • rmarkdown * suggests
  • rstanarm * suggests
  • survival * suggests
  • testthat * suggests