考えられる方法の 1 つを次に示します。ただし、これを行うにはおそらくもっと簡潔な方法があります。
まず、どの列がどの列の複製であるかを調べます。
fullnames<-colnames(A)
basenames<-substr(fullnames,1,nchar(fullnames)-1)
repnum<-as.integer(substr(fullnames,nchar(fullnames),nchar(fullnames)))
相関行列を計算し、必要なデータを抽出します。
ca<-cor(A)
corMask<-upper.tri(ca) & basenames[col(ca)]==basenames[row(ca)]
corSub<-ca[corMask]
nameSub<-basenames[row(ca)[corMask]]
repnumSub<-apply(cbind(repnum[row(ca[corMask]],repnum[col(ca[corMask]]),1,paste,collapse="-")
次に、プロットを描きます。
require(ggplot2)
plotdata<-data.frame(name=nameSub,cor=corSub,replicas=repnumSub)
ggplot(plotdata,aes(x=name,y=cor,pch=replicas))+geom_point()
次のサンプル データ セットを使用すると、次のようになります。
set.seed(123)
A<-data.frame(A1=rnorm(100), A2=rnorm(100),A3=rnorm(100),
B1=rnorm(100),B2=rnorm(100),
C1=rnorm(100),C2=rnorm(100),C3=rnorm(100))

次に、色を追加したり、プロットの制限などを変更して、希望どおりに見せることができます。