Cam*_*am 5 r ggplot2 facet-wrap
我有一些由变量“处理”包裹的时间序列数据。这种“治疗”的因素之一是阴性对照,我想将其包含在每个方面。
例如使用 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)
Run Code Online (Sandbox Code Playgroud)
如何将与主题“1”(对照)相对应的数据包含在每个方面中?(理想情况下,删除仅包含受试者 1 数据的方面。)
谢谢你!
为了让某个主题出现在每个方面,我们需要为每个方面复制它的数据。我们将创建一个名为 的新列facet,为主题的每个其他值复制主题 1 数据,并将主题 != 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)
Run Code Online (Sandbox Code Playgroud)