我的數據集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)。 –