Besides using tidystats in combination with a text editor add-in to report statistics, you can also use tidystats to read and use the statistics for other purposes. For example, researchers can extract specific statistics and perform analyses such as meta-analyses or a p-curve analysis on the extracted statistics.

One particular useful function that was created for this purpose is
`tidy_stats_to_data_frame()`

. This function converts a
tidystats list of statistics to a standard data frame. That means you
can use common data manipulation functions such as `filter()`

on the data to retrieve the statistics of interest.

Below is an example of how to convert a list of statistics to a data frame and perform several simple operations.

In the example below we read the tidystats list and select all the p-values.

```
# Load packages
library(tidystats)
library(dplyr)
# Read the .json file containing the statistics and immediately convert it to
# a data frame
statistics <- read_stats("statistics.json") |>
tidy_stats_to_data_frame()
# Extract all the p-values
p_values <- filter(statistics, statistic_name == "p")
p_values
```

identifier | analysis_name | group_name_1 | group_name_2 | statistic_name | symbol | subscript | lower | value | upper | interval | level |
---|---|---|---|---|---|---|---|---|---|---|---|

sleep_t_test | extra by group | - | - | p | - | - | - | 0.002833 | - | - | - |

D9_lm | weight ~ group | Model | - | p | - | - | - | 0.249023 | - | - | - |

D9_lm | weight ~ group | Coefficients | (Intercept) | p | - | - | - | 0.000000 | - | - | - |

D9_lm | weight ~ group | Coefficients | groupTrt | p | - | - | - | 0.249023 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | block | p | - | - | - | 0.015939 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | N | p | - | - | - | 0.004372 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | P | p | - | - | - | 0.474904 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | K | p | - | - | - | 0.028795 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | N:P | p | - | - | - | 0.263165 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | N:K | p | - | - | - | 0.168648 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | P:K | p | - | - | - | 0.862752 | - | - | - |

Alternatively, we can can also easily select all significant p-values.

identifier | analysis_name | group_name_1 | group_name_2 | statistic_name | symbol | subscript | lower | value | upper | interval | level |
---|---|---|---|---|---|---|---|---|---|---|---|

sleep_t_test | extra by group | - | - | p | - | - | - | 0.002833 | - | - | - |

D9_lm | weight ~ group | Coefficients | (Intercept) | p | - | - | - | 0.000000 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | block | p | - | - | - | 0.015939 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | N | p | - | - | - | 0.004372 | - | - | - |

npk_aov | yield ~ block + N * P * K | Terms | K | p | - | - | - | 0.028795 | - | - | - |

This could be useful if you want to conduct a p-curve analysis.
Although do note that you should not blindly select all
*p*-values. You should select only the *p*-values that are
relevant to a particular hypothesis. If researchers provide the correct
meta-information for each test (e.g., by indicating whether it is a
primary analysis), this could help meta-researchers make correct
decisions about which statistics to include in their analyses.

By importing a tidystats-produced file of statistics, you can convert
the statistics to a data frame using the
`tidy_stats_to_data_frame`

function and apply common data
transformation functions to extract specific statistics. These
statistics can then be used in analyses such as meta-analyses, p-curve
analyses, or other analyses.

Simonsohn, U., Nelson, L. D., & Simmons, J. P. (2014). p-curve
and effect size: Correcting for publication bias using only significant
results. *Perspectives on Psychological Science*, *9*(6),
666-681. https://doi.org/10.1177/1745691614553988