【发布时间】:2014-03-25 10:55:33
【问题描述】:
这与this question about ggplot changing the order of variable names 有关。那里给出的答案是手动强制对因子水平进行双射重新排序,但通常不能解决问题。一个例子是melt(matcor(data.A,data.B)$XYcor) 的输出,它重复了两次行:
data.A <- as.data.frame(matrix(runif(c(25)),nrow=5,ncol=5))
data.B <- as.data.frame(matrix(runif(c(25)),nrow=5,ncol=5))
library(ggplot)
library(CCA)
qplot(x=Var1, y=Var2, data=melt(matcor(data.A,data.B)$XYcor), fill=value, geom="tile")
此图背后的想法是显示两个多变量集之间的互相关,就像 img.matcor 所做的那样:
img.matcor(matcor(data.A,data.B))
在这张图片中,左上和右下象限是data.A和data.B的自相关矩阵,而其他象限是互相关矩阵的翻转版本。将数据重新排序为 ggplot2 确实会破坏这种关系。 (另一方面,ggplot 使这看起来方式更好。)
不幸的是,用factor.levels=FALSE 调用melt 并不能解决这个问题,首先,melt 正确地对列进行排序。有解决办法吗?
【问题讨论】: