Skip to content

plot(MarketSelections) triggers tibble error related to augsynth package #228

Description

@hcgagnon13

Bug description

This happens when going through the walkthrough (https://facebookincubator.github.io/GeoLift/docs/GettingStarted/Walkthrough#2-power-analysis) and when trying to plot results using own data. From the walkthrough, running the code to plot the results of MarketSelections results in an error that "Tibble columns must have compatible sizes." When tracing the error, it points to an issue when calling summary.augsynth and treated_table(augsynth).

Note: This seems similar to Issue #226 but with a different error.

Session information

R version 4.5.3 (2026-03-11 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 26200)

Matrix products: default
LAPACK version 3.12.1

locale:
[1] LC_COLLATE=English_United States.utf8 LC_CTYPE=English_United States.utf8
[3] LC_MONETARY=English_United States.utf8 LC_NUMERIC=C
[5] LC_TIME=English_United States.utf8

time zone: America/Los_Angeles
tzcode source: internal

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] augsynth_0.2.0 lubridate_1.9.5 forcats_1.0.1 stringr_1.6.0 dplyr_1.2.1 purrr_1.2.2
[7] readr_2.2.0 tidyr_1.3.2 tibble_3.3.1 ggplot2_4.0.3 tidyverse_2.0.0 GeoLift_2.7.5

loaded via a namespace (and not attached):
[1] tidyselect_1.2.1 farver_2.1.2 S7_0.2.2 GGally_2.4.0
[5] fixest_0.14.1 digest_0.6.39 timechange_0.4.0 lifecycle_1.0.5
[9] dreamerr_1.5.0 magrittr_2.0.5 compiler_4.5.3 rlang_1.2.0
[13] progress_1.2.3 rngtools_1.5.2 tools_4.5.3 utf8_1.2.6
[17] knitr_1.51 labeling_0.4.3 prettyunits_1.2.0 doRNG_1.8.6.3
[21] plyr_1.8.9 RColorBrewer_1.1-3 abind_1.4-8 withr_3.0.2
[25] numDeriv_2016.8-1.1 grid_4.5.3 xts_0.14.2 future_1.70.0
[29] globals_0.19.1 scales_1.4.0 iterators_1.0.14 MASS_7.3-65
[33] cli_3.6.6 mvtnorm_1.4-1 crayon_1.5.3 generics_0.1.4
[37] otel_0.2.0 rstudioapi_0.19.0 future.apply_1.20.2 reshape2_1.4.5
[41] tzdb_0.5.0 directlabels_2026.4.23 proxy_0.4-29 assertthat_0.2.1
[45] parallel_4.5.3 bsts_0.9.11 stringmagic_1.2.0 vctrs_0.7.3
[49] Matrix_1.7-4 sandwich_3.1-1 hms_1.1.4 Formula_1.2-5
[53] listenv_0.10.1 foreach_1.5.2 glue_1.8.1 parallelly_1.47.0
[57] dtw_1.23-3 ggstats_0.13.0 codetools_0.2-20 fect_2.4.5
[61] gsynth_1.4.0 stringi_1.8.7 gtable_0.3.6 quadprog_1.5-8
[65] osqp_1.0.0 Boom_0.9.16 pillar_1.11.1 R6_2.6.1
[69] BoomSpikeSlab_1.2.7 panelView_1.3.1 MarketMatching_1.2.1 doParallel_1.0.17
[73] CausalImpact_1.4.1 evaluate_1.0.5 lattice_0.22-9 Rcpp_1.1.1-1.1
[77] gridExtra_2.3 nlme_3.1-168 xfun_0.58 zoo_1.8-15
[81] pkgconfig_2.0.3

Reproduction steps

data("GeoLift_PreTest")
GeoTestData_PreTest <- GeoDataRead(data = GeoLift_PreTest,
date_id = "date",
location_id = "location",
Y_id = "Y",
X = c(), #empty list as we have no covariates
format = "yyyy-mm-dd",
summary = TRUE)

GeoPlot(GeoTestData_PreTest,
Y_id = "Y",
time_id = "time",
location_id = "location")

"Warning message:
Using size aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use linewidth instead.
ℹ The deprecated feature was likely used in the GeoLift package.
Please report the issue to the authors.
This warning is displayed once per session.
Call lifecycle::last_lifecycle_warnings() to see where this warning was generated."

MarketSelections <- GeoLiftMarketSelection(data = GeoTestData_PreTest,
treatment_periods = c(10,15),
N = c(2,3,4,5),
Y_id = "Y",
location_id = "location",
time_id = "time",
effect_size = seq(0, 0.5, 0.05),
lookback_window = 1,
include_markets = c("chicago"),
exclude_markets = c("honolulu"),
holdout = c(0.5, 1),
cpic = 7.50,
budget = 100000,
alpha = 0.1,
Correlations = TRUE,
fixed_effects = TRUE,
side_of_test = "two_sided")

plot(MarketSelections, market_ID = 1, print_summary = FALSE)

Error in tibble():
! Tibble columns must have compatible sizes.
• Size 90: Existing data.
• Size 360: Column Yobs.
ℹ Only values of size one are recycled.
Run rlang::last_trace() to see where the error occurred.

rlang::last_trace(drop = FALSE)
<error/tibble_error_incompatible_size>
Error in tibble():
! Tibble columns must have compatible sizes.
• Size 90: Existing data.
• Size 360: Column Yobs.
ℹ Only values of size one are recycled.


Backtrace:

  1. ├─base::plot(MarketSelections, market_ID = 1, print_summary = FALSE)
  2. └─GeoLift:::plot.GeoLiftMarketSelection(...)
  3. ├─base::suppressMessages(...)
  4. │ └─base::withCallingHandlers(...)
  5. └─GeoLift::GeoLift(...)
  6. ├─base::summary(...)
    
  7. └─augsynth:::summary.augsynth(...)
    
  8.   └─augsynth::treated_table(augsynth)
    
  9.     └─tibble::tibble(...)
    
  10.       └─tibble:::tibble_quos(xs, .rows, .name_repair)
    
  11.         └─tibble:::vectbl_recycle_rows(...)
    
  12.           └─tibble:::abort_incompatible_size(...)
    
  13.             └─tibble:::tibble_abort(...)
    
  14.               └─rlang::abort(x, class, ..., call = call, parent = parent, use_cli_format = TRUE)
    

Expected behavior

Plots produced similar to those displayed in the walkthrough

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions