Open ddotta opened 4 months ago
J'ai l'impression que add_table fait un appel à writeDataByGroup alors qu'il ne devrait pas :
1. ├─iris %>% toxlsx(path = tempdir()) at test-toxlsx.R:2:3
2. └─tablexlsx::toxlsx(., path = tempdir())
3. └─tablexlsx::add_table(...) at tablexlsx/R/toxlsx.R:204:5
4. └─tablexlsx:::writeDataByGroup(...) at tablexlsx/R/add_table.R:113:5
5. ├─base::split(x[, !names(x) %in% group], x[group], sep = groupsep) at tablexlsx/R/writeDataByGroup.R:26:3
On voit bien qu'il fait appel à wirtedatabygroup dans la ligne 113 de add_table. Mais ce n'est pas normal parce que normalement on n'entre dans cette boucle que si ByGroup est différent de NULL. Cf ci-dessous : https://github.com/ddotta/tablexlsx/blob/5e12edbfc9a1553df71f603afa461e545ed539c5/R/add_table.R#L101-L113 Est-ce que c'est possible que les valeurs de ByGroup soient modifiées à l'intérieur de la fonction ?
Arfff j'ai l'impression qu'il y a un soucis ici notamment :
https://github.com/ddotta/tablexlsx/blob/5e12edbfc9a1553df71f603afa461e545ed539c5/R/toxlsx.R#L234
Lorsque je lance toxlsx()
en mode debug, j'obtiens ceci lorsque j'ai passé l'étape du add_table()
(après le bloc de lignes 204)
Browse[2]> output[[df]]
$sheet
[1] "Sheet 1"
$title
[1] "iris"
$column
list()
$footnote1
[1] ""
$footnote2
[1] ""
$footnote3
[1] ""
$groupname
[1] FALSE
On voit bien que output[[df]][["bygroup"]]
n'est pas défini donc il n'y a aucune chance pour que le ByGroup = output[[df]][["bygroup"]]
fonctionne
Autre piste/élément :
Dans writeDataByGroup()
ce n'est pas gênant si l'argument ByGroup vaut NULL quand on arrive là ?
https://github.com/ddotta/tablexlsx/blob/5e12edbfc9a1553df71f603afa461e545ed539c5/R/add_table.R#L113
Le x[group] ici, il ne doit pas aimer je pense
@JulienBlasco Je te laisse regarder si tu as le temps, sinon j'essaierai de reprendre ça la semaine prochaine
Justement, si ByGroup vaut NULL dans add_table
, normalement writeDataByGroup n'est pas appelée, vu qu'il y a une condition if (is.null(ByGroup)) {...} else { writeDataByGroup(...) }
.
Ce qui est frustrant c'est que les tests marchent aussi chez moi, donc je ne comprends pas ce qui se passe dans la CI.
fixed by #31
@JulienBlasco I've made some adjustments but there seems to be a problem with the ` function when running tests in the CI.
https://github.com/ddotta/tablexlsx/actions/runs/9214059458/job/25349391905
Everything is apparently OK on my PC locally though.
Does the following error message mean anything to you?