Skip to content

Refactor for loops to use purrr in mapvizier_summary.R#328

Merged
almartin82 merged 1 commit into
masterfrom
fix/issue-314-purrr-rewrite
Dec 27, 2025
Merged

Refactor for loops to use purrr in mapvizier_summary.R#328
almartin82 merged 1 commit into
masterfrom
fix/issue-314-purrr-rewrite

Conversation

@almartin82
Copy link
Copy Markdown
Owner

Summary

  • Replace imperative for loops with purrr::pmap_int() for calculating cohort status NPRs
  • Applies to both summary.mapvizieR_growth and summary.mapvizieR_cdf functions
  • Add purrr (>= 1.0.0) as package dependency

Changes

Before (imperative):

for (i in seq_len(nrow(mapSummary))) {
  mapSummary[i, ]$start_cohort_status_npr <- cohort_mean_rit_to_npr(...)
  mapSummary[i, ]$end_cohort_status_npr <- cohort_mean_rit_to_npr(...)
}

After (functional):

mapSummary <- mapSummary %>%
  dplyr::mutate(
    start_cohort_status_npr = purrr::pmap_int(
      list(measurementscale, start_grade, start_fallwinterspring, start_mean_testritscore),
      cohort_mean_rit_to_npr
    ),
    end_cohort_status_npr = purrr::pmap_int(
      list(measurementscale, end_grade, end_fallwinterspring, end_mean_testritscore),
      cohort_mean_rit_to_npr
    )
  )

Test plan

  • All 997 tests pass
  • summary.mapvizieR_growth produces same output
  • summary.mapvizieR_cdf produces same output

Fixes #314

Replace imperative for loops with purrr::pmap_int() for calculating
cohort status NPRs in summary.mapvizieR_growth and summary.mapvizieR_cdf.

- Use purrr::pmap_int() to vectorize cohort_mean_rit_to_npr calls
- Add purrr (>= 1.0.0) as package dependency
- Cleaner, more functional approach following tidyverse idioms

Fixes #314
@almartin82 almartin82 merged commit 5de0305 into master Dec 27, 2025
1 check passed
@almartin82 almartin82 deleted the fix/issue-314-purrr-rewrite branch December 27, 2025 20:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rewrite using purrr

1 participant