Use the provided propensity scores to trim subjects with extreme scores.

trimByPs(population, trimFraction = 0.05)



A data frame with the three columns described below


This fraction will be removed from each treatment group. In the target group, persons with the highest propensity scores will be removed, in the comparator group person with the lowest scores will be removed.


Returns a tibble with the same three columns as the input.


The data frame should have the following three columns:

  • rowId (numeric): A unique identifier for each row (e.g. the person ID).

  • treatment (integer): Column indicating whether the person is in the target (1) or comparator (0) group.

  • propensityScore (numeric): Propensity score.


rowId <- 1:2000
treatment <- rep(0:1, each = 1000)
propensityScore <- c(runif(1000, min = 0, max = 1), runif(1000, min = 0, max = 1))
data <- data.frame(rowId = rowId, treatment = treatment, propensityScore = propensityScore)
result <- trimByPs(data, 0.05)
#> Population size after trimming is 1900