Closed
Description
As the title says, renaming of columns inside column groups cannot be done if the column group itself is renamed in the same call.
For instance:
val myDf = dataFrameOf("a", "b", "c")(1, 2, 3).group("a", "b", "c").into("letters")
//⌌---------------------⌍
//| | letters|
//|--|------------------|
//| 0| { a:1, b:2, c:3 }|
//⌎---------------------⌏
myDf.rename {
all().recursively()
// or using the old notation
allDfs(includeGroups = true)
}.into { it.name + "_renamed" }
//⌌---------------------⌍
//| | letters_renamed|
//|--|------------------|
//| 0| { a:1, b:2, c:3 }|
//⌎---------------------⌏
It needs to be done in two separate operations, like:
myDf
.rename {
cols { !it.isColumnGroup() }.recursively()
}.into { it.name + "_renamed" }
.rename {
cols { it.isColumnGroup() }.recursively()
}.into { it.name + "_renamed" }
//⌌--------------------------------------------⌍
//| | letters_renamed|
//|--|-----------------------------------------|
//| 0| { a_renamed:1, b_renamed:2, c_renamed...|
//⌎--------------------------------------------⌏
From a user-perspective, this makes little sense and we should probably find a way to fix this.