Encoded columns are detected, encoded with base64 and column names are appended with "__encoded" so that the decoder knows it. Other columns are not transformed

encodeListColumns(df)

Arguments

df

dataframe

Value

A dataframe where list-columns are encoded using base64 and those column names are appended by "__encoded"

Details

This is helpful in writing dataframes with list-columns to disk as delimited formats and read them back

Examples

library("magrittr") trialDF <- tibble::tibble(x = 1:10 , y = c(list(list(iris)), as.list(2:10)) ) trialDF
#> # A tibble: 10 x 2 #> x y #> <int> <list> #> 1 1 <list [1]> #> 2 2 <int [1]> #> 3 3 <int [1]> #> 4 4 <int [1]> #> 5 5 <int [1]> #> 6 6 <int [1]> #> 7 7 <int [1]> #> 8 8 <int [1]> #> 9 9 <int [1]> #> 10 10 <int [1]>
trialDF %>% encodeListColumns()
#> # A tibble: 10 x 2 #> x y__encoded #> <int> <chr> #> 1 1 WAoAAAACAAMFAQACAwAAAAATAAAAAQAAAxMAAAAFAAAADgAAAJZAFGZmZmZmZkATmZmZmZ… #> 2 2 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAI= #> 3 3 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAM= #> 4 4 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAQ= #> 5 5 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAU= #> 6 6 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAY= #> 7 7 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAc= #> 8 8 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAg= #> 9 9 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAk= #> 10 10 WAoAAAACAAMFAQACAwAAAAANAAAAAQAAAAo=
trialDF %>% encodeListColumns() %>% decodeListColumns()
#> # A tibble: 10 x 2 #> x y #> <int> <list> #> 1 1 <data.frame [150 × 5]> #> 2 2 <int [1]> #> 3 3 <int [1]> #> 4 4 <int [1]> #> 5 5 <int [1]> #> 6 6 <int [1]> #> 7 7 <int [1]> #> 8 8 <int [1]> #> 9 9 <int [1]> #> 10 10 <int [1]>