ggplot - фасет по выводу функции

Я не уверен, как следует учитывать функцию данных вdata элементggplot объект. В следующем примере с игрушкой я хочу сделать что-то вроде этого:

df <- data.frame(x=1:8, y=runif(8), z=8:1)
ggplot(df, aes(x=x, y=y)) + geom_point() + facet_wrap( ~ (z %% 2))

Но это дает ошибку:Error in layout_base(data, vars, drop = drop) : At least one layer must contain all variables used for facetting.

Я могу достичь желаемого результата, преобразовав фрейм данных:

ggplot(transform(df, z=z%%2), aes(x=x, y=y)) + geom_point() + facet_wrap( ~ z)

но часто желательно не использовать такое преобразование, например, если мне уже далиggplot объект, и я хочу добавить некоторую специальную огранку к нему.

Ответы на вопрос(1)

Ваш ответ на вопрос