Я использую новый пакет ggmosaic
, чтобы нарисовать мозаичные участки с ggplot2
.R - Ошибка при использовании пакета ggmosaic
У меня есть ошибка «Вычисление не выполнено в stat_mosaic()
» только для одной из переменных из набора данных, который я использую. Проблема, похоже, находится вокруг содержимого переменной, а точнее, вокруг обработки ]
, потому что она работает, когда я заменяю ее другим символом, например )
.
Простой пример:
# Parameters
library(ggplot2)
library(ggmosaic)
set.separators(c(":", ";", "|")) # cf. ggmosaic documentation
# Plot OK
ggplot(data = df) +
geom_mosaic(aes(weight = 1, x = product(TheGroup, TheRange), fill = TheGroup), na.rm = TRUE) +
theme(axis.text.x = element_text(angle = 0, hjust = .1)) +
labs(x = "TheRange", y = "TheGroup")
# Plot NOK
ggplot(data = df) +
geom_mosaic(aes(weight = 1, x = product(TheRange, TheGroup), fill = TheRange), na.rm = TRUE) +
theme(axis.text.x = element_text(angle = 0, hjust = .1)) +
labs(x = "TheGroup", y = "TheRange")
И подмножество моего кадра данных с переменной:
df <- structure(list(TheRange = structure(c(1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 3L, 3L, 2L, 3L, 1L, 3L, 1L, 2L, 3L, 2L, 1L, 2L, 3L, 2L,
1L, 2L, 2L, 3L, 1L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 1L, 3L, 1L, 2L,
1L, 3L, 3L, 1L, 3L),
.Label = c("(0,30]", "(30,50]", "(50,100]"), class = "factor"),
TheGroup = c("Groupe 2", "Groupe 1", "Groupe 2",
"Groupe 1", "Groupe 1", "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 2",
"Groupe 2", "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 2", "Groupe 2",
"Groupe 2", "Groupe 1", "Groupe 2", "Groupe 1", "Groupe 2", "Groupe 1",
"Groupe 1", "Groupe 1", "Groupe 2", "Groupe 1", "Groupe 1", "Groupe 1",
"Groupe 2", "Groupe 1", "Groupe 1", "Groupe 2", "Groupe 2", "Groupe 2",
"Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2",
"Groupe 2", "Groupe 2", "Groupe 2", "Groupe 2")),
.Names = c("TheRange", "TheGroup"),
row.names = c(1L, 2L, 3L, 4L, 5L, 14L, 15L, 16L,
17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 30L,
31L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 41L, 42L, 43L, 44L, 46L,
47L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L),
class = "data.frame")