Skip to content

Commit 7160348

Browse files
authored
Merge pull request #362 from easystats/copilot/fix-p-value-stars-display
Fix conditional formatting rule ordering for openxlsx2 v1.21 compatibility
2 parents 591df97 + a1537ab commit 7160348

9 files changed

Lines changed: 163 additions & 87 deletions

DESCRIPTION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Type: Package
22
Package: correlation
33
Title: Methods for Correlation Analysis
4-
Version: 0.8.8
4+
Version: 0.8.8.1
55
Authors@R:
66
c(person(given = "Dominique",
77
family = "Makowski",
@@ -88,7 +88,7 @@ VignetteBuilder:
8888
knitr
8989
Encoding: UTF-8
9090
Language: en-US
91-
RoxygenNote: 7.3.2
91+
RoxygenNote: 7.3.3
9292
Roxygen: list(markdown = TRUE)
9393
Config/testthat/edition: 3
9494
Config/Needs/website:

NEWS.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
# correlation 0.8.9
2+
3+
## Bug Fixes
4+
5+
- `cormatrix_to_excel()` now works correctly with openxlsx2 v1.16+. Fixed
6+
conditional formatting rule ordering to accommodate openxlsx2's new waterfall
7+
strategy (#361).
8+
19
# correlation 0.8.8
210

311
- `correlation()` gains a `missing=` argument, similar to `stats::cor(use=)`, for controlling how missing data is handled.

R/cormatrix_to_excel.R

Lines changed: 66 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,17 @@
4141
#' \dontshow{
4242
#' setwd(.old_wd)
4343
#' }
44-
cormatrix_to_excel <- function(data,
45-
filename,
46-
overwrite = TRUE,
47-
print.mat = TRUE,
48-
...) {
44+
cormatrix_to_excel <- function(
45+
data,
46+
filename,
47+
overwrite = TRUE,
48+
print.mat = TRUE,
49+
...
50+
) {
4951
if (missing(filename)) {
50-
insight::format_error("Argument 'filename' required (as per CRAN policies).")
52+
insight::format_error(
53+
"Argument 'filename' required (as per CRAN policies)."
54+
)
5155
}
5256

5357
insight::check_if_installed("openxlsx2")
@@ -241,52 +245,61 @@ cormatrix_to_excel <- function(data,
241245
wb$add_worksheet("p_values")$add_data(x = p_val)
242246

243247
# create conditional formatting for the stars (as well as colours as we have no)
244-
# one star
245248
# Compute the cell range for styling
246249
dims_fmt <- openxlsx2::wb_dims(cols = all.columns, rows = all.columns)
250+
251+
# gray diagonal (most specific, must be first to win for r = 1)
247252
wb$add_conditional_formatting(
248253
"r_values",
249254
dims = dims_fmt,
250-
rule = "AND(r_values!B2 <= .2, r_values!B2 > 0, p_values!B2 < .05)",
251-
style = "one_star_pink"
255+
rule = "r_values!B2 = 1",
256+
style = "gray_style"
252257
)
258+
259+
# three stars (p < .001) - most specific color ranges first
253260
wb$add_conditional_formatting(
254261
"r_values",
255262
dims = dims_fmt,
256-
rule = "AND(r_values!B2 >= .2, p_values!B2 < .05)",
257-
style = "one_star_peach"
263+
rule = "AND(r_values!B2 >= .4, p_values!B2 < .001)",
264+
style = "three_stars_red"
258265
)
259266
wb$add_conditional_formatting(
260267
"r_values",
261268
dims = dims_fmt,
262-
rule = "AND(r_values!B2 >= .4, p_values!B2 < .05)",
263-
style = "one_star_red"
269+
rule = "AND(r_values!B2 >= .2, p_values!B2 < .001)",
270+
style = "three_stars_peach"
264271
)
265272
wb$add_conditional_formatting(
266273
"r_values",
267274
dims = dims_fmt,
268-
rule = "AND(r_values!B2 >= -.2, r_values!B2 < 0, p_values!B2 < .05)",
269-
style = "one_star_lightblue"
275+
rule = "AND(r_values!B2 <= .2, r_values!B2 > 0, p_values!B2 < .001)",
276+
style = "three_stars_pink"
270277
)
271278
wb$add_conditional_formatting(
272279
"r_values",
273280
dims = dims_fmt,
274-
rule = "AND(r_values!B2 <= -.2, p_values!B2 < .05)",
275-
style = "one_star_midblue"
281+
rule = "AND(r_values!B2 <= -.4, p_values!B2 < .001)",
282+
style = "three_stars_darkblue"
276283
)
277284
wb$add_conditional_formatting(
278285
"r_values",
279286
dims = dims_fmt,
280-
rule = "AND(r_values!B2 <= -.4, p_values!B2 < .05)",
281-
style = "one_star_darkblue"
287+
rule = "AND(r_values!B2 <= -.2, p_values!B2 < .001)",
288+
style = "three_stars_midblue"
289+
)
290+
wb$add_conditional_formatting(
291+
"r_values",
292+
dims = dims_fmt,
293+
rule = "AND(r_values!B2 >= -.2, r_values!B2 < 0, p_values!B2 < .001)",
294+
style = "three_stars_lightblue"
282295
)
283296

284-
# two stars
297+
# two stars (p < .01) - most specific color ranges first
285298
wb$add_conditional_formatting(
286299
"r_values",
287300
dims = dims_fmt,
288-
rule = "AND(r_values!B2 <= .2, r_values!B2 > 0, p_values!B2 < .01)",
289-
style = "two_stars_pink"
301+
rule = "AND(r_values!B2 >= .4, p_values!B2 < .01)",
302+
style = "two_stars_red"
290303
)
291304
wb$add_conditional_formatting(
292305
"r_values",
@@ -297,14 +310,14 @@ cormatrix_to_excel <- function(data,
297310
wb$add_conditional_formatting(
298311
"r_values",
299312
dims = dims_fmt,
300-
rule = "AND(r_values!B2 >= .4, p_values!B2 < .01)",
301-
style = "two_stars_red"
313+
rule = "AND(r_values!B2 <= .2, r_values!B2 > 0, p_values!B2 < .01)",
314+
style = "two_stars_pink"
302315
)
303316
wb$add_conditional_formatting(
304317
"r_values",
305318
dims = dims_fmt,
306-
rule = "AND(r_values!B2 >= -.02, r_values!B2 < 0, p_values!B2 < .01)",
307-
style = "two_stars_lightblue"
319+
rule = "AND(r_values!B2 <= -.4, p_values!B2 < .01)",
320+
style = "two_stars_darkblue"
308321
)
309322
wb$add_conditional_formatting(
310323
"r_values",
@@ -315,74 +328,68 @@ cormatrix_to_excel <- function(data,
315328
wb$add_conditional_formatting(
316329
"r_values",
317330
dims = dims_fmt,
318-
rule = "AND(r_values!B2 <= -.4, p_values!B2 < .01)",
319-
style = "two_stars_darkblue"
331+
rule = "AND(r_values!B2 >= -.2, r_values!B2 < 0, p_values!B2 < .01)",
332+
style = "two_stars_lightblue"
320333
)
321334

322-
# three stars
335+
# one star (p < .05) - most specific color ranges first
323336
wb$add_conditional_formatting(
324337
"r_values",
325338
dims = dims_fmt,
326-
rule = "AND(r_values!B2 <= .2, r_values!B2 > 0, p_values!B2 < .001)",
327-
style = "three_stars_pink"
339+
rule = "AND(r_values!B2 >= .4, p_values!B2 < .05)",
340+
style = "one_star_red"
328341
)
329342
wb$add_conditional_formatting(
330343
"r_values",
331344
dims = dims_fmt,
332-
rule = "AND(r_values!B2 >= .2, p_values!B2 < .001)",
333-
style = "three_stars_peach"
345+
rule = "AND(r_values!B2 >= .2, p_values!B2 < .05)",
346+
style = "one_star_peach"
334347
)
335348
wb$add_conditional_formatting(
336349
"r_values",
337350
dims = dims_fmt,
338-
rule = "AND(r_values!B2 >= .4, p_values!B2 < .001)",
339-
style = "three_stars_red"
351+
rule = "AND(r_values!B2 <= .2, r_values!B2 > 0, p_values!B2 < .05)",
352+
style = "one_star_pink"
340353
)
341354
wb$add_conditional_formatting(
342355
"r_values",
343356
dims = dims_fmt,
344-
rule = "AND(r_values!B2 >= -.2, r_values!B2 < 0, p_values!B2 < .001)",
345-
style = "three_stars_lightblue"
357+
rule = "AND(r_values!B2 <= -.4, p_values!B2 < .05)",
358+
style = "one_star_darkblue"
346359
)
347360
wb$add_conditional_formatting(
348361
"r_values",
349362
dims = dims_fmt,
350-
rule = "AND(r_values!B2 <= -.2, p_values!B2 < .001)",
351-
style = "three_stars_midblue"
363+
rule = "AND(r_values!B2 <= -.2, p_values!B2 < .05)",
364+
style = "one_star_midblue"
352365
)
353366
wb$add_conditional_formatting(
354367
"r_values",
355368
dims = dims_fmt,
356-
rule = "AND(r_values!B2 <= -.4, p_values!B2 < .001)",
357-
style = "three_stars_darkblue"
369+
rule = "AND(r_values!B2 >= -.2, r_values!B2 < 0, p_values!B2 < .05)",
370+
style = "one_star_lightblue"
358371
)
359372

360-
# Other formatting
361-
wb$add_conditional_formatting(
362-
"r_values",
363-
dims = dims_fmt,
364-
rule = "AND(r_values!B2 = 1)",
365-
style = "gray_style"
366-
)
373+
# no stars (for non-significant correlations)
367374
wb$add_conditional_formatting(
368375
"r_values",
369376
dims = dims_fmt,
370377
rule = "AND(p_values!B2 >= .05)",
371378
style = "no_star"
372379
)
373380

374-
# p-values
381+
# p-values (most specific first)
375382
wb$add_conditional_formatting(
376383
"p_values",
377384
dims = dims_fmt,
378-
rule = "< 10",
379-
style = "p_style"
385+
rule = "== 0",
386+
style = "gray_style"
380387
)
381388
wb$add_conditional_formatting(
382389
"p_values",
383390
dims = dims_fmt,
384-
rule = "< .05",
385-
style = "p_style1"
391+
rule = "< .001",
392+
style = "p_style3"
386393
)
387394
wb$add_conditional_formatting(
388395
"p_values",
@@ -393,14 +400,14 @@ cormatrix_to_excel <- function(data,
393400
wb$add_conditional_formatting(
394401
"p_values",
395402
dims = dims_fmt,
396-
rule = "< .001",
397-
style = "p_style3"
403+
rule = "< .05",
404+
style = "p_style1"
398405
)
399406
wb$add_conditional_formatting(
400407
"p_values",
401408
dims = dims_fmt,
402-
rule = "== 0",
403-
style = "gray_style"
409+
rule = "< 10",
410+
style = "p_style"
404411
)
405412

406413
## Freeze Panes
@@ -409,7 +416,8 @@ cormatrix_to_excel <- function(data,
409416

410417
# Save Excel
411418
cat(paste0(
412-
"\n\n [Correlation matrix '", filename,
419+
"\n\n [Correlation matrix '",
420+
filename,
413421
".xlsx' has been saved to working directory (or where specified).]"
414422
))
415423
openxlsx2::wb_save(wb, file = paste0(filename, ".xlsx"), overwrite = TRUE)

man/cor_smooth.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/cormatrix_to_excel.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/correlation.Rd

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/visualisation_recipe.easycormatrix.Rd

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/_snaps/renaming.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
Output
66
# Correlation Matrix (pearson-method)
77
8-
Parameter1 | Parameter2 | r | 95% CI | t(9) | p
9-
----------------------------------------------------------------
10-
x1 | x2 | 1.00 | [1.00, 1.00] | Inf | < .001***
8+
Parameter1 | Parameter2 | r | 95% CI | t(9) | p
9+
-------------------------------------------------------------
10+
x1 | x2 | 1 | [1.00, 1.00] | Inf | < .001***
1111
1212
p-value adjustment method: Holm (1979)
1313
Observations: 11
@@ -19,9 +19,9 @@
1919
Output
2020
# Correlation Matrix (pearson-method)
2121
22-
Parameter1 | Parameter2 | r | 95% CI | t(9) | p
23-
----------------------------------------------------------------
24-
var1 | var2 | 1.00 | [1.00, 1.00] | Inf | < .001***
22+
Parameter1 | Parameter2 | r | 95% CI | t(9) | p
23+
-------------------------------------------------------------
24+
var1 | var2 | 1 | [1.00, 1.00] | Inf | < .001***
2525
2626
p-value adjustment method: Holm (1979)
2727
Observations: 11

0 commit comments

Comments
 (0)