在同一图上绘制数据框子集的andrews曲线

时间:2013-11-10 15:52:12

标签: r subset

我有一个12列的数据框,我想在这个数据的R中绘制andrews曲线,基于第12列的曲线颜色。以下是数据中的一些示例(抱歉,列与数字不对齐)

Teacher_explaining  Teacher_enthusiastic    Teacher_material_interesting    Material_stimulating    Material_useful Clear_marking   Marking_fair    Feedback_prompt Feedback_clarifies  Detailed_comments   Notes   Year
80  80  80  80  85  85  80  80  80  80  70  3
70  60  30  40  70  60  30  40  70  0   30  3
100 90  90  80  80  100 100 90  100 100 100 MSc
85  85  85  90  90  70  90  50  70  80  100 MSc
90  50  90  90  90  70  100 50  80  100 100 4
100 80  80  75  90  80  80  50  80  80  90  3

根据这些数据,我尝试使用以下代码绘制andrews曲线:

install.packages("andrews")
library(andrews)

 col <- as.numeric(factor(course[,12]))
    andrews(course[,1:12], clr = 12)

但是,第12列有三组(3种类型的响应),我想将其中两个分组,然后绘制数据的andrews曲线,而不在Excel中编辑我的数据框。

x <- subset(course, Year == "MSc" & "4")
y <- subset(course, Year == "3")

我尝试了上面的代码,但我对x的论证不起作用。 “MSc”,“3”和“4”是第12列中的组,我想将MSc和4分组,以便他们的安德鲁斯曲线具有相同的颜色。

如果您有任何想法,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可能会尝试崩溃级别&#39; MSc&#39;和&#39; 4&#39;在'年'&#39;变量为一个级别。我打电话给你的数据框&#39; df&#39;:

# convert 'Year' to factor:
df$Year <- as.factor(df$Year)

# rename the levels. 'MSc' and '4' is collapsed into a new level with name MSc_4   
levels(df$Year) <- list(MSc_4 = c("MSc", "4"), "3" = c("3")) 

# plot
andrews(df = df, clr = 12)

enter image description here