Продолжение этого примера . У меня есть функция в R, которая генерирует некоторый код CSS.
CSS <- function(values, colors){
template <- "
.option[data-value=%s], .item[data-value=%s]{
background: %s !important;
color: white !important;
}"
paste0(
apply(cbind(values, colors), 1, function(vc){
sprintf(template, vc[1], vc[1], vc[2])
}),
collapse = "\n"
)
}
Например, CSS(c("a","b","c"), c("red", "green", "blue"))
генерирует
.option[data-value=a], .item[data-value=a]{
background: red !important;
color: white !important;
}
.option[data-value=b], .item[data-value=b]{
background: green !important;
color: white !important;
}
.option[data-value=c], .item[data-value=c]{
background: blue !important;
color: white !important;
}
Однако, если мои значения c("a 1","b 2","c 3 3")
, и я выполняю CSS(c("a 1","b 2","c 3 3"), c("red", "green", "blue"))
, CSS не распознает пробел между каждым элементом для каждого символа в векторе символов. Итак, "a 1"
не распознается, он читается как "a"
, а "b 2"
читается как "b"
et c.
Я знаю, что мне нужно заключить каждый символ в кавычки, иначе пробел станет просто разделителем атрибутов, а все, что находится после пробелов, будет рассматриваться как атрибуты элемента. Но как мне сделать это в рамках указанной выше функции без необходимости жесткого кодирования?