Poolstok / MongoDB

Wrapper library around mongolite to improve ease of use
0 stars 0 forks source link

Function for "promoting" a field in a (nested) list to the name of the list #16

Closed Milko-B closed 2 months ago

Milko-B commented 2 months ago

Zoals al eens besproken, is het soms handig om een veld in een lijst te gebruiken als de naam in een grotere nested list

Voorbeeld:

list(
  list( name = "a", x = 1, y = TRUE),
  list( name = "b", x = 2, y = FALSE)
)

naar

list(
  "a" = list(x = 1, y = TRUE),
  "b" = list(x = 2, y = FALSE)
)

Dit is een probleem dat ik relatief vaak tegenkom met de resulterende objecten uit een mongoDB. Maar ik vraag me af of deze repo de juiste plaats is voor zulke functionaliteit?

Wat denken jullie?

Milko-B commented 2 months ago

We hebben dit al eens onderling uitgetest dus we hebben de code liggen.

Dit is @rutger-hertoghe zijn implementatie. Dit werkt zoals verwacht. De vraag is, willen we dit in deze repo?

oldList <- list(
   list(name = "a", x = 1, y = TRUE),
   list(name = "b", x = 2, y = FALSE)
)

ConvertToNamedList <- function(nameField, list)
{
  newList <- list()
  for(element in list)
  {
   newList[[element[[nameField]]]] <- element[names(element) != nameField]
  }
  return(newList)
}

newList <- ConvertToNamedList("name", oldList)
rutger-hertoghe commented 2 months ago

Ik zou zeggen van niet, dit is geen passend onderdeel voor een library die zich op het beheer van een MongoDB focust