pharmaR / riskmetric

Metrics to evaluate the risk of R packages
https://pharmar.github.io/riskmetric/
Other
159 stars 30 forks source link

`pkg_score()` error when only one assessment is done #339

Open fh-kpikhart opened 5 months ago

fh-kpikhart commented 5 months ago

pkg_score() requires >= 2 assessments to be done. Can it be extended to handle the case where only 1 assessment is done?

library(dplyr)
library(riskmetric)
packageVersion("riskmetric")

[1] ‘0.2.4’

pkg <- "dplyr" %>%
  pkg_ref(source = "pkg_cran_remote", repos = c("https://cran.rstudio.com")) %>%
  as_tibble()

assess_all <- pkg %>%
  pkg_assess()

assess_two <- pkg %>%
  pkg_assess(all_assessments[1:2])

assess_one <- pkg %>%
  pkg_assess(all_assessments[1])

pkg_score(assess_all) # Works

# A tibble: 1 × 23
package version pkg_ref            pkg_score bugs_status covr_coverage size_codebase export_help r_cmd_check
<chr>   <chr>   <lst_f_p_>             <dbl> <pkg_scor>  <pkg_scor>    <pkg_scor>    <pkg_scor>  <pkg_scor> 
  1 dplyr   1.1.4   dplyr<cran_remote>     0.464 0.4333333   NA            NA            NA          NA         
# ℹ 14 more variables: dependencies <pkg_scor>, reverse_dependencies <pkg_scor>, license <pkg_scor>,
#   has_maintainer <pkg_scor>, remote_checks <pkg_scor>, exported_namespace <pkg_scor>, has_website <pkg_scor>,
#   downloads_1yr <pkg_scor>, has_news <pkg_scor>, has_vignettes <pkg_scor>, has_examples <pkg_scor>,
#   has_source_control <pkg_scor>, has_bug_reports_url <pkg_scor>, news_current <pkg_scor>

pkg_score(assess_two) # Works

# A tibble: 1 × 6
package version pkg_ref            pkg_score bugs_status covr_coverage
<chr>   <chr>   <lst_f_p_>             <dbl> <pkg_scor>  <pkg_scor>   
  1 dplyr   1.1.4   dplyr<cran_remote>     0.783 0.4333333   NA  

pkg_score(assess_one) # Doesn't work

Error in colSums(apply(data[names(weights)], 1L, `*`, weights), na.rm = TRUE) : 
  'x' must be an array of at least two dimensions