ошибка ggplot2: ошибка по умолчанию тема: нечисловой аргумент двоичного оператора

#r #ggplot2

#r #ggplot2

Вопрос:

Я получаю ошибку Ошибка по умолчанию тема: нечисловой аргумент для двоичного оператора.Я использую R и обучаю R в течение длительного времени, но я не могу найти эту проблему. Ниже я включил воспроизводимый пример, который завершается с ошибкой таким образом:

 library(tibble)
library(ggplot2)

brains <- as_tibble(brains)
brains <- brains[1:10, ]
brains
ggplot(brains, aes(x = BodyWt, y = BrainWt))  
  geom_point()
  

Ошибка возникает при выполнении инструкции ggplot().

Моим оборудованием является ноутбук HP 15-ef0xxx. Я использую Windows 10 домашней версии 2004. Я использую RStudio community edition «Water Lily» и R версии R x64 ** 4.0.2.

Я знаю, что это простая ошибка, и она сводит меня с ума.

Комментарии:

1. Здравствуйте и добро пожаловать в Stack Overflow. Не могли бы вы, пожалуйста, предоставить нам данные? Без фактического набора данных сложно отладить проблему.

2. У меня возникла эта ошибка, потому что я использовал %>% вместо . Я прочитал эту тему и перепробовал кучу вариантов, чтобы исправить это, но это была глупая трата времени, поскольку это была просто синтаксическая ошибка.

3. У меня возникла эта ошибка из-за другой глупой ошибки. Я писал theme_set(theme_linedraw) вместо theme_set(theme_linedraw()) . Регистрирую это, чтобы, возможно, это кому-то помогло.

Ответ №1:

Итак, я, наконец, решил эту проблему. По поводу проблемы с github, которую я открыл, Хироаки прокомментировал, что «Одна из возможностей заключается в том, что вы можете установить недопустимую тему по умолчанию в вашем .Rprofile, но я не уверен …» (см. Ссылку на проблему ниже).

Я не уверен, является ли ваш R-файл частью проекта, но мой является. Итак, я вернулся и удалил строку theme_set () в моем R-файле, зашел и дважды проверил все параметры моего проекта и выбрал опцию «Отключить выполнение .Rprofile при запуске / возобновлении сеанса» и «Завершить дочерние процессы при выходе». А затем я перезапустил сеанс R, и теперь все работает. В том числе на консоли редактора R по умолчанию. Я не уверен, что все эти шаги необходимы, но, похоже, это помогло мне! Надеюсь, это поможет.

Я думал, что это проблема RStudio, но, похоже, это, возможно, проблема ggplot2. Я проверил, используя два разных набора данных, что одна и та же ошибка возникает при попытке использовать ggplot2 в RStudio или с помощью R> консоли по умолчанию. Я получаю точно такую же ошибку с кодом, который работал нормально, но теперь внезапно не будет. Я открыл проблему на Github (ggplot2) с помощью > reprex. Возможно, стоит проверить там: >https://github.com/tidyverse/ggplot2/issues/4177

Я знаю, что это не ответ как таковой, но у меня недостаточно очков репутации, чтобы добавить комментарий к предыдущему ответу, но я подумал, что ссылка на > проблему на Github может помочь.

Ответ №2:

Я думаю, что у вас где-то указаны числа, и вы пытаетесь выполнить математическую операцию над символьными значениями. Рассмотрим

   x <- c("5","6")
  y <- x/1

>   y <- x/1
Error in x/1 : non-numeric argument to binary operator
  

Теперь попробуйте преобразовать x в числовой и выполните ту же операцию.

 y <- as.numeric(x)/1
>  y
[1] 5 6
  

Итак, вам нужно использовать as.numeric в вашей переменной.
Следующее должно устранить эту проблему

 ggplot(brains, aes(x = as.numeric(BodyWt), y = as.numeric(BrainWt)))