https://github.com/r-hub/pkgsearch

Search R packages on CRAN

https://github.com/r-hub/pkgsearch

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
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

cran package r r-package ranking rstats search-engine

Keywords from Contributors

tidyverse tidy-data unit-testing data-manipulation grammar setup devtools filesystem libuv string-interpolation
Last synced: 6 months ago · JSON representation

Repository

Search R packages on CRAN

Basic Info
Statistics
  • Stars: 112
  • Watchers: 3
  • Forks: 10
  • Open Issues: 30
  • Releases: 11
Topics
cran package r r-package ranking rstats search-engine
Created over 11 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License Code of conduct

README.Rmd

---
output:
  md_document:
    variant: markdown_github
    toc: true
    toc_depth: 3
    includes:
      before_body: header.md
---



```{r, setup, echo = FALSE, message = FALSE}
knitr::opts_chunk$set(
  comment = "#>",
  tidy = FALSE,
  error = FALSE,
  fig.width = 8,
  fig.height = 8)
options(width = 90)
options(max.print = 200)
```

## Installation

Install the latest pkgsearch release from CRAN:

```r
install.packages("pkgsearch")
```

The development version is on GitHub:

```r
pak::pak("r-hub/pkgsearch")
```

## Usage

### Search relevant packages

Do you need to find packages solving a particular problem, e.g.
"permutation test"?

```{r search}
library("pkgsearch")
library("pillar") # nicer data frame printing
pkg_search("permutation test")
```

pkgsearch uses an [R-hub](https://github.com/r-hub) web service and a careful
ranking that puts popular packages before less frequently used ones.

### Do it all *clicking*

For the search mentioned above, and other points of entry to CRAN metadata,
you can use pkgsearch RStudio add-in!

[![Addin screencast](https://raw.githubusercontent.com/r-hub/pkgsearch/main/gifs/addin.gif)](https://vimeo.com/375618736)

Select the "CRAN package search" addin from the menu, or start it with
`pkg_search_addin()`.

### Get package metadata

Do you want to find the dependencies the first versions of `testthat` had
and when each of these versions was released?

```{r history}
cran_package_history("testthat")
```

### Discover packages

Do you want to know what packages are trending on CRAN these days?
`pkgsearch` can help!

```{r trend}
cran_trending()
cran_top_downloaded()
```

### Keep up with CRAN

Are you curious about the latest releases or archivals?

```{r}
cran_events()
```

## Search features

### More details

By default it returns a short summary of the ten best search hits. Their
details can be printed by using the `format = "long"` option of `pkg_search()`,
or just calling `pkg_search()` again, without any arguments, after a search:

```{r}
library(pkgsearch)
pkg_search("C++")
```

```{r}
pkg_search()
```

### Pagination

The `more()` function can be used to display the next batch of search hits,
batches contain ten packages by default. `ps()` is a shorter alias to
`pkg_search()`:

```{r}
ps("google")
```

```{r}
more()
```

### Stemming

The search server uses the stems of the words in the indexed metadata, and
the search phrase. This means that "colour" and "colours" deliver the
exact same result. So do "coloring", "colored", etc. (Unless one is happen
to be an exact package name or match another non-stemmed field.)

```{r}
ps("colour", size = 3)
ps("colours", size = 3)
```

### Ranking

The most important feature of a search engine is the ranking of the results.
The best results should be listed first. pkgsearch uses weighted scoring,
where a match in the package title gets a higher score than a match in the
package description. It also uses the number of reverse dependencies and
the number of downloads to weight the scores:

```{r}
ps("colour")[, c("score", "package", "revdeps", "downloads_last_month")]
```

### Preferring Phrases

The search engine prefers matching whole phrases over single words.
E.g. the search phrase "permutation test" will rank coin higher than
testthat, even though testthat is a much better result for the single word
"test". (In fact, at the time of writing testthat is not even on the first
page of results.)

```{r}
ps("permutation test")
```

If the whole phrase does not match, pkgsearch falls back to individual
matching words. For example, a match from either words is enough here,
to get on the first page of results:

```{r}
ps("test http")
```

### British vs American English

The search engine uses a dictionary to make sure that package metadata
and queries given in British and American English yield the same results.
E.g. note the spelling of colour/color in the results:

```{r}
ps("colour")
ps("color")
```

### Ascii Folding

Especially when searching for package maintainer names, it is convenient
to use the corresponding ASCII letters for non-ASCII characters in search
phrases. E.g. the following two queries yield the same results. Note that
case is also ignored.

```{r}
ps("gabor", size = 5)
ps("Gábor", size = 5)
```

## Configuration

### Options

* `timeout`: pkgsearch follows the `timeout` options for HTTP requests
  (i.e. for `pkg_search()` and `advanced_search()`. `timeout` is the limit
  for the total time of the HTTP request, and it is in seconds. See
  `?options` for details.

## More info

See the [complete documentation](https://r-hub.github.io/pkgsearch/).

## License

MIT @ [Gábor Csárdi](https://github.com/gaborcsardi),
[RStudio](https://github.com/rstudio),
[R Consortium](https://r-consortium.org/).

Owner

  • Name: The R-hub project of the R Consortium
  • Login: r-hub
  • Kind: organization
  • Email: admin@r-hub.io
  • Location: United States of America

GitHub Events

Total
  • Create event: 3
  • Release event: 2
  • Issues event: 11
  • Watch event: 3
  • Issue comment event: 7
  • Push event: 15
  • Pull request event: 2
  • Fork event: 1
Last Year
  • Create event: 3
  • Release event: 2
  • Issues event: 11
  • Watch event: 3
  • Issue comment event: 7
  • Push event: 15
  • Pull request event: 2
  • Fork event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 352
  • Total Committers: 5
  • Avg Commits per committer: 70.4
  • Development Distribution Score (DDS): 0.338
Past Year
  • Commits: 10
  • Committers: 1
  • Avg Commits per committer: 10.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Gábor Csárdi c****r@g****m 233
Maëlle Salmon m****n@y****e 116
runner r****r@M****l 1
Salim B s****m@p****e 1
runner r****r@M****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 93
  • Total pull requests: 25
  • Average time to close issues: 7 months
  • Average time to close pull requests: 5 months
  • Total issue authors: 24
  • Total pull request authors: 5
  • Average comments per issue: 2.99
  • Average comments per pull request: 3.68
  • Merged pull requests: 19
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 2
  • Average time to close issues: about 5 hours
  • Average time to close pull requests: 9 days
  • Issue authors: 5
  • Pull request authors: 1
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gaborcsardi (33)
  • maelle (32)
  • lindbrook (5)
  • yonicd (2)
  • wleoncio (2)
  • chuxinyuan (1)
  • joseph-rickert (1)
  • restonslacker (1)
  • mccarthy-m-g (1)
  • jonthegeek (1)
  • Polkas (1)
  • salim-b (1)
  • dseynaev (1)
  • gladkia (1)
  • systemnova (1)
Pull Request Authors
  • maelle (19)
  • gladkia (2)
  • gaborcsardi (2)
  • ErdaradunGaztea (1)
  • salim-b (1)
Top Labels
Issue Labels
crandb (22) bug (9) feature (4) documentation (2) upkeep (1)
Pull Request Labels
bug (1)

Packages

  • Total packages: 2
  • Total downloads:
    • cran 2,636 last-month
  • Total docker downloads: 66,005
  • Total dependent packages: 6
    (may contain duplicates)
  • Total dependent repositories: 22
    (may contain duplicates)
  • Total versions: 24
  • Total maintainers: 1
proxy.golang.org: github.com/r-hub/pkgsearch
  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 6 months ago
cran.r-project.org: pkgsearch

Search and Query CRAN R Packages

  • Versions: 12
  • Dependent Packages: 6
  • Dependent Repositories: 22
  • Downloads: 2,636 Last month
  • Docker Downloads: 66,005
Rankings
Stargazers count: 3.7%
Downloads: 4.9%
Dependent repos count: 5.8%
Dependent packages count: 7.3%
Forks count: 8.7%
Average: 8.7%
Docker downloads count: 22.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • curl * imports
  • jsonlite * imports
  • parsedate >= 1.3.0 imports
  • prettyunits * imports
  • covr * suggests
  • memoise * suggests
  • mockery * suggests
  • pillar * suggests
  • pingr >= 2.0.0 suggests
  • rstudioapi * suggests
  • shiny * suggests
  • shinyWidgets * suggests
  • shinyjs * suggests
  • testthat >= 2.1.0 suggests
  • whoami * suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 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.4.1 composite
  • actions/checkout v3 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/pr-commands.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/pr-fetch v2 composite
  • r-lib/actions/pr-push v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/test-coverage.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite