ggplot2 - включить один уровень фактора во все аспекты - PullRequest
0 голосов
/ 29 июня 2018

У меня есть некоторые данные временных рядов, фасет которых обернут переменным 'treatment'. Один из уровней этого «лечебного» фактора - отрицательный контроль, и я хочу включить его в каждый аспект.

Например, используя набор данных R 'Theoph':

data("Theoph")


head(Theoph)

Subject   Wt Dose Time  conc
1       1 79.6 4.02 0.00  0.74
2       1 79.6 4.02 0.25  2.84
3       1 79.6 4.02 0.57  6.57
4       1 79.6 4.02 1.12 10.50
5       1 79.6 4.02 2.02  9.66
6       1 79.6 4.02 3.82  8.58

Theoph$Subject <- factor(Theoph$Subject, levels = unique(Theoph$Subject)) # set factor order

ggplot(Theoph, aes(x=Time, y=conc, colour=Subject)) +
  geom_line() +
  geom_point() +
  facet_wrap(~ Subject)

Как можно включить данные, соответствующие субъекту '1' (элемент управления), для включения в каждый аспект? (И в идеале удаление фасета, содержащего только данные субъекта 1.)

Спасибо!

1 Ответ

0 голосов
/ 29 июня 2018

Чтобы в каждом аспекте появился определенный предмет, нам нужно скопировать его данные для каждого аспекта. Мы создадим новый столбец с именем facet, реплицируем данные Subject 1 для каждого другого значения Subject, а для Subject! = 1 установите facet равным Subject.

every_facet_data = subset(Theoph, Subject == 1)
individual_facet_data = subset(Theoph, Subject != 1)
individual_facet_data$facet = individual_facet_data$Subject

every_facet_data = merge(every_facet_data,
                                                 data.frame(Subject = 1, facet = unique(individual_facet_data$facet)))

plot_data = rbind(every_facet_data, individual_facet_data)

library(ggplot2)
ggplot(plot_data, aes(x=Time, y=conc, colour=Subject)) +
  geom_line() +
  geom_point() +
  facet_wrap(~ facet)

enter image description here

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