我想使用R中的脱字符号包绘制PLS-DA的个人图(类似于PCA图),并为不同的组添加颜色(请参见图片,这是PCA的示例,但我想就像是用于PLS-DA的相同类型的图表)。有人可以帮我吗?
这是一个代码,用于生成类似于我使用的数据的随机数据。 Ycalib包含一个具有2个级别的向量变量,Xcalib包含539个光谱波长(在代码下方生成10个波长)。
set.seed(1001)
Ycalib <- data.frame(
y = sample(c("0", "1"), 10, replace = TRUE)
)
set.seed(1001)
Xcalib <- data.frame(
x1 = sample(1:10),
x2 = sample(1:10),
x3 = sample(1:10),
x4 = sample(1:10),
x5 = sample(1:10),
x6 = sample(1:10),
x7 = sample(1:10),
x8 = sample(1:10),
x9 = sample(1:10),
x10= sample(1:10)
)
这是我在插入符号中的PLS-DA代码:
library(caret)
set.seed(1001)
ctrl<-trainControl(method="repeatedcv",number=10,classProbs = TRUE,summaryFunction = twoClassSummary)
plsda<-train(x=Xcalib, # spectral data
y=Ycalib, # factor vector
method="pls", # pls-da algorithm
tuneLength=10, # number of components
trControl=ctrl, # ctrl contained cross-validation option
preProc=c("center","scale"), # the data are centered and scaled
metric="ROC") # metric is ROC for 2 classes
plsda
我希望我已经很清楚R,因为我是R的初学者。
答案 0 :(得分:0)
也许有点晚了,但是我相信这可以通过使用以下方法从pls
模型中提取前两个组件来完成:
dfWithComponents <- as.data.frame(model$finalModel$scores[,])
然后,您可以将其绑定到原始数据,并且可以根据需要绘制图形,例如使用ggplot2
。
p <- ggplot(biocExp, aes(x=`Comp 1`,y=`Comp 2`, color = classificationVar)) + geom_point()