0

我有一个 12 列的数据框,我想在此数据的 R 中绘制安德鲁斯曲线,将曲线的颜色基于第 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

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

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

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

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

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

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

如果您知道如何执行此操作,请告诉我。

4

1 回答 1

0

您可以尝试将“Year”变量中的“MSc”和“4”级别合并为一个级别。我称您的数据框为“df”:

# 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)

在此处输入图像描述

于 2013-11-10T21:49:44.620 回答