Допустим, у меня есть tibble
фрейм данных с именем df
в R, например:
df <- tibble(a = 1:3,
b = c("a", "b", "c"))
Довольно просто переименовать переменные с помощью dplyr::rename()
(или создать новые с помощью dplyr::mutate()
), в том числе без кавычек с оператором :=
, например ::
df <- df %>%
rename("the new b" := b) %>%
mutate(c = a + 1)
Что дает мне:
> df
# A tibble: 3 x 3
a `the new b` c
<int> <chr> <dbl>
1 1 a 2
2 2 b 3
3 3 c 4
Однако, когда я хочу включить математические символы или уравнения в имена переменных с помощью expression()
, это не работает, например, когда я пытаюсь использовать греческий альфа-символ, происходит сбой:
# Fails:
> df <- df %>%
+ mutate(expression(A~symbol:~alpha) = c)
Error: unexpected '=' in:
"df <- df %>%
mutate(expression(A~symbol:~alpha) ="
# Fails again:
> df <- df %>%
+ mutate(expression(A~symbol:~alpha) := c)
Error: The LHS of `:=` must be a string or a symbol
РЕДАКТИРОВАНИЕ / ОБНОВЛЕНИЕ : Для ясности, в приведенном выше примере я хочу получить действительный греческий буквенный символ ( не строка букв алфавита "alpha").
ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ : Вот сложный пример. Что делать, если я хочу что-то вроде в качестве имени переменной :
Возможные варианты использования для сложного примера относятся к меткам facet
при построении с помощью ggplot2::facet_wrap()
или при визуализации фрейма данных в виде таблицы с rmarkdown
и т. Д. *
Я пытался вложить expression()
в paste()
или str_c()
безрезультатно. Как мне этого добиться? Спасибо.