【发布时间】:2018-08-28 13:57:39
【问题描述】:
我一直在尝试使用 ggplot2 从我的数据集中绘制数据。下面,您可以看到图表。观察的数量被放置在 x 轴上,而在行为评分量表上获得的分数被绘制在 y 轴上。这些分数是在两个连续条件下收集的(A = 基线,B = 干预),每个受试者的长度不同。
df <- read.table(header = TRUE, text = "
case measure session phase_id outcome condition
1 1 3 1 A 4 A
2 1 3 2 A 10 A
3 1 3 3 A 10 A
4 1 3 4 B 10 B
5 1 3 5 B 10 B
6 1 3 6 B 10 B
7 1 3 7 B 12 B
8 1 3 8 B 10 B
9 1 3 9 B 20 B
10 3 3 1 A 13 A
11 3 3 2 A 12 A
12 3 3 3 A 5 A
13 3 3 4 A 0 A
14 3 3 5 A 10 A
15 3 3 6 A 4 A
16 3 3 7 A 3 A
17 3 3 8 B 4 B
18 3 3 9 B 14 B
19 3 3 10 B 25 B
20 3 3 11 B 25 B
21 3 3 12 B 20 B
22 3 3 13 B 25 B
23 3 3 14 B 24 B
24 3 3 15 B 13 B
25 6 3 1 A 7 A
26 6 3 2 A 6 A
27 6 3 3 A 9 A
28 6 3 4 A 0 A
29 6 3 5 A 9 A
30 6 3 6 B 6 B
31 6 3 7 B 14 B
32 6 3 8 B 6 B
33 6 3 9 B 7 B
")
我想做的是在图表的中间建立一个点,与 A 阶段相关的所有数据都在该点结束,这样 A 阶段将在同一点结束,B 阶段将从同一点开始每个参与者的分数。
df %>%
ggplot(aes(session, outcome, color)) +
geom_line(aes(group = case, color = condition), size = 0.1, alpha = 0.4) +
geom_smooth(aes(color = condition), size = 2, method = "lm") +
theme_minimal() +
theme(legend.position = "none")
更新
这将是我想要的解决方案(也许两个阶段之间没有连续的线)。
感谢您的帮助!
【问题讨论】: