Исходя из фона C/Python/Java, мне трудно понять некоторый синтаксис R, где литералы выглядят как переменные, но, похоже, ведут себя как строки. Например:
library(ggplot2)
library("ggplot2")
Две линии ведут себя эквивалентно. Однако я ожидаю, что первая строка будет означать "загрузить библиотеку, имя которой хранится в переменной ggplot2" и дать ошибку, например object 'ggplot2' not found
.
Говоря о ggplot2:
ggplot(data, aes(factor(arrivalRate), responseTime, fill=factor(mode))) +
geom_violin(trim=FALSE, position=dodge)
Переменные arrivalRate
, responseTime
и mode
не существуют, но каким-то образом R знает, как их искать внутри фрейма данных data
. Я предполагаю, что aes
фактически получает строки, которые затем обрабатываются с помощью чего-то вроде eval
.
Как код R parse заканчивается тем, что интерпретирует некоторые литералы как строки?