Объект не найден, даже если он объявлен глобально при использовании 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')