我的数据集dart
是一个尺寸为1981 x 278的矩阵。第一列包含从1到21的染色体数字,第二列是标记名称,第三列是距离(CM )。循环相同的步骤来创建一个图
下面的代码绘制了一条染色体的LD衰减。我想对21条染色体重复同样的事情(循环它们)。
任何帮助或评论将不胜感激。
dart<- read.csv("dartnonaR.csv")
chr1 <- which(dart[, 1] == 1);
mpos <- dart[chr1,2:3 ];
head(mpos);
dart1 <- dart[chr1,];
dim(dart1);
dart2 <- dart1[,-c(1,2,3)];
dart2 <- t(dart2);
r2 <- (cor(dart2))^2;
rownames(r2) <- mpos$MARKERS;
mark <- rownames(r2);
r2a <- r2;
r2v <- NULL;
distance <- NULL;
for(i in 1:144){
for (j in (i+1):145){
r2v <- c(r2v, r2a[i,j])
distance <- c(distance, abs(mpos[mpos$MARKERS == mark[i],2] - mpos[mpos$MARKERS == mark[j],2]))
cat(i,j,"\n")
}
};
plot(distance, r2v, xlab = "Distance in cM", ylab = "LD in r2");
你能发表'str(dart)'的结果吗?或者甚至更好,组成一个模拟数据集(请参阅http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 –