Почему я получаю сообщение об ошибке при попытке работать с ggplot в Julia?

Я вызываю пакет ggplot в Julia, как показано на этом веб-сайте: https://avt.im/blog/2018/03/23/R-packages-ggplot-in-julia . Я использую пакет, показанный на этом веб-сайте, и все работает нормально.

Теперь я строю средние предельные эффекты в Джулии, используя Effectsупаковка. Я хочу построить это, используя ggplot вот данные, которые у меня есть:

      df = effects(design, m1)

Вот мой код ggplot и ошибка:

      ggplot(df, aes(unemploy, workhours, group = sex, shape= sex, linetype=sex)) + 
  geom_point(position=position_dodge(width=0.15)) +
  geom_errorbar(aes(ymin = lower, ymax = upper),width = 0.1,
                linetype = "solid",position=position_dodge(width=0.15))+
  geom_line(position=position_dodge(width=0.15))  

UndefVarError: sex not defined

Stacktrace:
 [1] top-level scope
   @ In[131]:1
 [2] eval
   @ ./boot.jl:360 [inlined]
 [3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
   @ Base ./loading.jl:1116

Я пробовал этот код раньше в R на том же фрейме данных, и он работал нормально, поэтому я думаю, проблема в том, что ggplot не считывает данные должным образом. Может ли кто-нибудь помочь мне обойти эту проблему?

1 ответ

Ваша ссылка фактически объясняет это в этом небольшом фрагменте:

      ggplot(d, aes(x=:x,y=:y)) + geom_line()

Обратите внимание, что функция aes использует символы Джулии, такие как :x, для ссылки на столбцы фрейма данных.

В вашей линии aes(unemploy, workhours, group = sex, shape= sex, linetype=sex), обрабатывается как любая другая переменная в Julia, в частности, Джулия пытается найти существующую переменную в коде и объекте, на который она ссылается. Он не был найден в вашем коде, поэтому UndefVarError.

Нестандартные оценочные гранты R's aesспособность видеть group=sexи лечить sexкак имя вместо того, чтобы пытаться оценить его. Это немного похоже на то, как макросы Джулии работают с невычисленными выражениями до этапа компиляции, но R имеет совсем другой стиль.

Другие вопросы по тегам