【发布时间】:2017-07-04 05:56:58
【问题描述】:
我有以下df 数据集:
Subject Age School TimeOfTest Score1 Score2
1 1 12 Aletta-Jacobs-College Morning 78 180
2 2 11 Aletta-Jacobs-College Afternoon 81 181
3 3 12 Aletta-Jacobs-College Morning 79 177
4 4 13 Aletta-Jacobs-College Afternoon 88 170
5 5 13 Marie-Curie-School Morning 88 182
6 6 12 Marie-Curie-School Afternoon 82 179
我想用School 和TimeOfTest 绘制Score1 和Score2。
现在,按照this其他问题的答案,我可以通过一个变量获得颜色:
plot(df$Score1, df$Score2, col=df$School)
但是,如果我尝试将这两个因素结合起来,我会得到一个空图。
我尝试了不同的解决方案,但都没有奏效:
plot(df$Score1, df$Score2, col=c(df$School, df$TimeOfTest))
或者
colors <- levels(interaction(df$School, df$TimeOfTest))
plot(df$Score1, df$Score2, col=colors)
有什么想法吗?也许没有 ggplot2 ?
【问题讨论】:
-
plot(df$Score1, df$Score2, col= as.numeric(as.factor(paste(df$School,df$TimeOfTest)))) -
对我来说,
interaction方法似乎工作得很好。df <- data.frame(Score1 = 1:6, Score2 = 1:6, School = c(rep("A",4),rep("M",2)), TimeOfTest = c("M","A")); colors <- interaction(df$School,df$TimeOfTest); plot(df$Score1,df$Score2,col = colors); legend("bottomright",legend = colors,col = colors,fill = colors) -
是的,interaction(...) 确实有效。我正在使用级别(交互(...))。