It's unclear what this is intended to do, because coerces its argument to a data.table object. Although data.table-tweeked data.frame objects have very desirable features, mixing {dplyr} syntax into the mix will at best lead to confusion.
It's unclear whether you want to derive this from some other data, so I'll just give a ways to enter it direct.
you can not have such a column with a chr type, you must have a column with a list type if an entry in such a list may need to be a chr vector with length > 1. Also a vanilla data.frame wouldnt support this direct construction, but a tibble would. A tibble of this kind will as.data.frame into a functioning data.frame so its just a matter of what one can do when manually constucting data.frames vs tibbles.
library(tidyverse)
example <- tibble(a = list(c('a','b'),
character(0),
"z",
c('y','z')))
example
str(example)