staninside

A helper package for using CmdStanR in R packages

https://github.com/medewitt/staninside

Science Score: 26.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.5%) to scientific vocabulary

Keywords

r stan
Last synced: 6 months ago · JSON representation

Repository

A helper package for using CmdStanR in R packages

Basic Info
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Topics
r stan
Created almost 5 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Code of conduct Codemeta

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# staninside


[![R-CMD-check](https://github.com/medewitt/staninside/actions/workflows/R-CMD-check.yaml/badge.svg?branch=main)](https://github.com/medewitt/staninside/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/medewitt/staninside/branch/main/graph/badge.svg)](https://app.codecov.io/gh/medewitt/staninside?branch=main)
[![CRAN status](https://www.r-pkg.org/badges/version/staninside)](https://CRAN.R-project.org/package=staninside)


The goal of staninside is to facilitate the use of [CmdStanR](https://mc-stan.org/cmdstanr/) and packages leveraging [Stan](https://mc-stan.org/) code.

## Installation

From Github:

``` r
remotes::install_github("medewitt/staninside")
```

Alternatively, try [r-universe](https://medewitt.r-universe.dev/#builds):

```r
# Enable this universe
options(repos = c(
    medewitt = 'https://medewitt.r-universe.dev',
    CRAN = 'https://cloud.r-project.org'))

install.packages('staninside')
```

## Motivation

CmdStanR is a fantastic resource for interacting with Stan.
The benefits include using the latest version of Stan and associated feature (which may not be available to RStan), no need for Rcpp dependencies, and licensing (BSD vs GPL3).
Personally, the ability to ship packages with the raw Stan code allows users to directly interact with the code and update it based on their needs. 

One issue that staninside seeks to solve is the prohibition by CRAN of manipulating a user's files:

>Packages should not write in the user’s home filespace (including clipboards), nor anywhere else on the file system apart from the R session’s temporary directory (or during installation in the location pointed to by TMPDIR: and such usage should be cleaned up). Installing into the system’s R installation (e.g., scripts to its bin directory) is not allowed.

Per 

Staninside seeks to resolve this issue by providing a framework for package authors who wish to use Stan and CmdStanR to stay in compliance with CRAN Policies.
This is done by providing helper functions with write and compile Stan code from within a package to the user's package cache using the `rappdirs` package. 

## Code of Conduct

Please note that the staninside project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.

Owner

  • Name: Michael DeWitt
  • Login: medewitt
  • Kind: user

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "staninside",
  "description": "Infrastructure and functions that can be used for integrating 'Stan' (Carpenter et al. (2017) <doi:10.18637/jss.v076.i01>) code into stand alone R packages which in turn use the 'CmdStan' engine which is often accessed through 'CmdStanR'. Details given in Stan Development Team (2025) <https://mc-stan.org/cmdstanr/>. Using 'CmdStanR' and pre-written 'Stan' code can make package installation easy. Using 'staninside' offers a way to cache user-compiled 'Stan' models in user-specified directories reducing the need to recompile the same model multiple times.",
  "name": "staninside: \"Facilitating the Use of 'Stan' Within Packages\"",
  "relatedLink": "https://medewitt.github.io/staninside/",
  "codeRepository": "https://github.com/medewitt/staninside",
  "issueTracker": "https://github.com/medewitt/staninside/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "0.0.4",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.3.3 (2024-02-29)",
  "author": [
    {
      "@type": "Person",
      "givenName": "Michael",
      "familyName": "DeWitt",
      "email": "me.dewitt.jr@gmail.com",
      "@id": "https://orcid.org/0000-0001-8940-1967"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Michael",
      "familyName": "DeWitt",
      "email": "me.dewitt.jr@gmail.com",
      "@id": "https://orcid.org/0000-0001-8940-1967"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "spelling",
      "name": "spelling",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=spelling"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.1"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "cli",
      "name": "cli",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cli"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "fs",
      "name": "fs",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=fs"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "rappdirs",
      "name": "rappdirs",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rappdirs"
    },
    "SystemRequirements": null
  },
  "fileSize": "21.019KB",
  "releaseNotes": "https://github.com/medewitt/staninside/blob/master/NEWS.md",
  "readme": "https://github.com/medewitt/staninside/blob/main/README.md",
  "contIntegration": [
    "https://github.com/medewitt/staninside/actions/workflows/R-CMD-check.yaml",
    "https://app.codecov.io/gh/medewitt/staninside?branch=main"
  ],
  "keywords": [
    "r",
    "stan"
  ]
}

GitHub Events

Total
  • Issues event: 3
  • Push event: 11
  • Pull request event: 1
  • Create event: 1
Last Year
  • Issues event: 3
  • Push event: 11
  • Pull request event: 1
  • Create event: 1

Issues and Pull Requests

Last synced: 6 months ago


Dependencies

DESCRIPTION cran
  • R >= 3.1 depends
  • cli * imports
  • fs * imports
  • rappdirs * imports
  • covr * suggests
  • knitr * suggests
  • rmarkdown * suggests
  • spelling * suggests
  • testthat >= 3.0.0 suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.5.0 composite
  • actions/checkout v4 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/rhub.yaml actions
  • r-hub/actions/checkout v1 composite
  • r-hub/actions/platform-info v1 composite
  • r-hub/actions/run-check v1 composite
  • r-hub/actions/setup v1 composite
  • r-hub/actions/setup-deps v1 composite
  • r-hub/actions/setup-r v1 composite