Я знаю, что, как правило, последовательности \uxxxx
не поддерживаются внутри обратных ссылок. Есть ли у вас способ обойти их (\uxxxx
последовательности) в именах столбцов?
Чтобы указать c, представьте себе расчет индекса массы тела и добавление единиц измерения к именам столбцов.
Начало с
dt<-data.frame(
`Weight [kg]` = runif(5,50,100),
`Height [m]` = runif(5,1.5,2),
check.names=F
)
и mutate
:
> dt2<-dt %>%
mutate(
`BMI [kg/m\u00b2]`= `Weight [kg]`/`Height [m]`^2
)
Это приводит к ошибке: Error: \uxxxx sequences not supported inside backticks (line 3)
.
Мой обходной путь такой:
> dt2<-dt %>%
mutate(
`BMI [kg/m2]`= `Weight [kg]`/`Height [m]`^2
) %>%
set_colnames(colnames(.) %>% str_replace('2\\]', '\u00b2\\]'))
> colnames(dt2)
[1] "Weight [kg]" "Height [m]" "BMI [kg/m²]"
Это дает мне именно то, что я хочу, но не очень элегантно.
Удивительно, но немного более ясный подход терпит неудачу:
> dt2<-dt %>%
mutate(
`BMI [kg/m2]`= `Weight [kg]`/`Height [m]`^2
) %>%
rename_all(str_replace, '2\\]', '\u00b2\\]')
> colnames(dt2)
[1] "Weight [kg]" "Height [m]" "BMI [kg/m2]"
Итак, мой вопрос: можно ли это сделать? не таким хакерским способом?
И:
- да, я уверен, мне нужно
\uxxx
в именах столбцов; - да, я используйте их далее на графиках;
- нет, я не хочу заменять их на
expression
.