Объект не найден, даже если он объявлен глобально при использовании geom_text()

R жалуется на то, что переменная не существует, хотя она была объявлена ​​глобально. Вот фрагмент кода, который воспроизводит проблему:

dataSet2 <- data.frame(FR=c("N", "S", "S","S"))
totalTrx <- 2000
# Errors
ggplot(dataSet2, aes(FR)) +
    geom_bar(aes(y = prop.table(..count..) * 100, fill=FR)) +
    geom_text(aes(y = prop.table(..count..) * 100 + 2,label = paste0('(', prop.table(..count..)*totalTrx, ')')), stat='count')

# Runs
ggplot(dataSet2, aes(FR)) +
    geom_bar(aes(y = prop.table(..count..) * 100, fill=FR)) +
    geom_text(aes(y = prop.table(..count..) * 100 + 2,label = paste0('(', prop.table(..count..)*100, ')')), stat='count')

# Also runs
ggplot(dataSet2, aes(FR)) +
        geom_bar(aes(y = prop.table(..count..) * 100, fill=FR)) +
        geom_text(aes(y = prop.table(..count..) * 100 + 2,label = paste0('(', totalTrx, ')')), stat='count')

Есть идеи, что здесь происходит? С помощью prop.table и использование глобальной переменной кажется взаимоисключающим.

1 ответ

Решение

Эта проблема связана с ggplot, а не с prop.table, если вы определили "totalTrx" внутри "aes", она решена.

ggplot(dataSet2, aes(FR)) +
  geom_bar(aes(y = prop.table(..count..) * 100, fill=FR)) +
  geom_text(aes(y = prop.table(..count..) * 100 + 2,label = paste0('(', prop.table(..count..)*totalTrx, ')'), totalTrx = totalTrx), stat='count')
Другие вопросы по тегам