#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)))