ggplot "ошибка в переименовании" - PullRequest
1 голос
/ 17 января 2011

обновление Я разместил свое решение ниже, виновником была моя собственная rename функция, которая отвергла reshape::rename


Я использовал пакет ggplot R с небольшимБеда до сегодняшнего дня.Сегодня я получаю сообщение об ошибке, используя ранее работавший код, и когда я отлаживаю его до минимального рабочего примера, он все равно выдает ошибку;

Если я сделаю это:

library(ggplot2)
d<- data.frame(x=1:3,y=1:3)
ggplot(data=d) + geom_line(aes(x,y))   

Будет возвращена следующая ошибка:

Error in rename(x, .base_to_ggplot) : 
  unused argument(s) (.base_to_ggplot)

Трассировка:

6: rename(x, .base_to_ggplot)
5: rename_aes(aes)
4: aes()
3: structure(list(data = data, layers = list(), scales = Scales$new(), 
       mapping = mapping, options = list(), coordinates = CoordCartesian$new(), 
       facet = FacetGrid$new(), plot_env = environment), class = "ggplot")
2: ggplot.data.frame(data = d, aes = c(x, y))
1: ggplot(data = d, aes = c(x, y))

Ошибкане происходит после удаления всех объектов с помощью rm(list=ls()), но мне до сих пор не ясно, какой объект вызывает эту ошибку или почему - как я могу это выяснить?

Кто-нибудь знает, что могло пойти не так?

Ответы [ 3 ]

2 голосов
/ 17 января 2011

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

Error: geom_pointrange requires the following missing aesthetics: ymin, ymax

Соответственно, geom_pointrange() ожидает аргументы для ymin и ymax.Я оставлю это на ваше усмотрение, чтобы заполнить вашу соответствующую информацию для того, что должно входить в эти параметры, но этот код выполняет:

1 голос
/ 18 января 2011

Проблема вызвана тем, что ggplot2 не использует пространства имен - это будет исправлено в следующем выпуске.

1 голос
/ 17 января 2011

Ошибка была вызвана одним из объектов (благодаря указателям из @Chase).

Вот как я отлаживал и нашел виновника.Важной частью было использование функции try(), которая поддерживает цикл for, несмотря на ошибки

foo <- ls() #get a static list of all suspect objects
for(i in 1:length(foo)) {
    print(foo[i])
    rm(list=foo[i])
    try(ggplot()+geom_point(aes(x=1:2,y=1:2)))
}

Это привело к следующему выводу:

...
[1] "45 reg.model"
Error in rename(x, .base_to_ggplot) : 
  unused argument(s) (.base_to_ggplot)
[1] "46 reg.parms"
Error in rename(x, .base_to_ggplot) : 
  unused argument(s) (.base_to_ggplot)
[1] "47 rename"
[1] "48 samples"
...

ага!ошибка была вызвана моей собственной функцией rename, поскольку ggplot2 полагается на reshape::rename.

Решение: переименуйте новую функцию rename ... как предотвратить это в будущем?Возможно, изучите использование пространств имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...