R 从数据中组合图形并创建绘图列表

R 从数据中组合图形并创建绘图列表,r,lapply,R,Lapply,我认为这可能是一个简单的解决办法,但我无法让它工作。这是一款R-Shining应用程序,它有两个输入数据集,结构如下: d1 <- data.frame(A1 = rnorm(10), A2 = rnorm(10), A3 = rnorm(10), B1 = rnorm(10), B2 = rnorm(10), B3 = rnorm(10),

我认为这可能是一个简单的解决办法,但我无法让它工作。这是一款R-Shining应用程序,它有两个输入数据集,结构如下:

d1 <- data.frame(A1 = rnorm(10),
             A2 = rnorm(10),
             A3 = rnorm(10),
             B1 = rnorm(10),
             B2 = rnorm(10),
             B3 = rnorm(10),
             C1 = rnorm(10),
             C2 = rnorm(10),
             C3 = rnorm(10),
             Names = c("A", "B", "C", "D", "E",
                       "F", "G", "H", "I", "J"))
d2 <- data.frame(ID = c("A1", "A2", "A3", 
                    "B1", "B2", "B3",
                    "C1", "C2", "C3"),
             Anno = c(rep("A", 3), 
                      rep("B", 3),
                      rep("C", 3)), stringsAsFactors = FALSE)
anno <- d2$Anno
d3 <- d1[,1:nrow(d1)-1]
colnames(d3) <- anno
sampleFreq <- as.data.frame(table(d2[,2]))
datalist <- list()
for (i in sampleFreq[, 1]) {
  d4 <- d3[, i == names(d3)]
  datalist[[i]] = d4
}
这给了我一个由replicate构造的数据帧列表,我想从中创建一个散点图列表。我尝试过循环,但遇到了问题,我认为可能有一个lapply解决方案,但我被卡住了。这样做的目的是使用一个索引号从绘图列表中调用绘图,该索引号由在列表中单击按钮的次数决定

任何帮助都会很棒


谢谢

在每个复制组中,配对图不绘制什么?我们可以从您的数据开始,我尽量不将d1中的列重命名为d3(就像您那样)


d1真棒!我在考虑根据他们的组合制作每个复制的单独GGPlot,但我认为这实际上传达了更好的数据!非常感谢,没问题!在我以前的工作中,我不得不做很多这样的事情。。。来自R基的配对效果非常好:)
anno <- d2$Anno
d3 <- d1[,1:nrow(d1)-1]
colnames(d3) <- anno
sampleFreq <- as.data.frame(table(d2[,2]))
datalist <- list()
for (i in sampleFreq[, 1]) {
  d4 <- d3[, i == names(d3)]
  datalist[[i]] = d4
}
d1 <- data.frame(A1 = rnorm(10),
             A2 = rnorm(10),
             A3 = rnorm(10),
             B1 = rnorm(10),
             B2 = rnorm(10),
             B3 = rnorm(10),
             C1 = rnorm(10),
             C2 = rnorm(10),
             C3 = rnorm(10),
             Names = c("A", "B", "C", "D", "E",
                       "F", "G", "H", "I", "J"))

d2 <- data.frame(ID = c("A1", "A2", "A3", 
                    "B1", "B2", "B3",
                    "C1", "C2", "C3"),
             Anno = c(rep("A", 3), 
                      rep("B", 3),
                      rep("C", 3)), stringsAsFactors = FALSE)
pdf(<somefilename.pdf>)
for(i in unique(d2$Anno)){
COLS=d2$ID[d2$Anno ==i]
pairs(d1[,COLS],upper.panel=NULL)
}
dev.off()
library(GGally)

plots <- lapply(unique(d2$Anno),function(i){

    COLS=as.character(d2$ID[d2$Anno ==i])
    return(ggscatmat(d1[,d2$Anno %in% i]))
    })

plots[[1]]