2017-07-27 45 views
0

我使用biteswise函數使用證明距離基於我的基因型的SNP基因型數據計算遺傳距離。我用這個如何使用R中的POPPr軟件包將基因型之間的遺傳距離值寫入csv文件?

snpsdist<-bitwise.dist(snps) 
save(snpsdist, ascii=TRUE, file="GPdist.CSV") 
write.table(snpsdist,"bitwise.csv") 

這下面的代碼我要像下面的格式我的距離值,但我沒有這樣做

  A  B  C  
A  0 
B  0.34 0 
C  0.39 0.45 0 

任何一個可以幫我寫我的結果上面的格式?任何在這方面的幫助將不勝感激,對不起,如果我不是在這個職位後面的任何編碼標準 感謝和關注

+0

請提供一個可複製的例子或者只是足夠的信息來解讀你的數據。此外,顯示你已經嘗試過(但失敗)。你見過例如[這個問題](https://stackoverflow.com/questions/26377199/convert-a-matrix-in-r-into-a-upper-triangular-lower-triangular-matrix-with-those) ? –

回答

0

幾點建議。

將距離矩陣轉換爲完整矩陣。這將用較低的鏡像填充上三角形。

m <- as.matrix(dist(c(1, 3, 2, 5))) 
m 
# 1 2 3 4 
# 1 0 2 1 4 
# 2 2 0 1 2 
# 3 1 1 0 3 
# 4 4 2 3 0 

您可以用您選擇的值替換上面的三角形,如NA

m[upper.tri(m)] <- NA 
m 
# 1 2 3 4 
# 1 0 NA NA NA 
# 2 2 0 NA NA 
# 3 1 1 0 NA 
# 4 4 2 3 0 

或者您可以用空字符串替換上面的三角形。這將強制矩陣爲字符類型。

m[upper.tri(m)] <- "" 
m 
# 1 2 3 4 
# 1 "0" "" "" "" 
# 2 "2" "0" "" "" 
# 3 "1" "1" "0" "" 
# 4 "4" "2" "3" "0" 

write.csv(m, "m.csv") 

無論任何這些解決方案將工作的方式取決於你打算送csv文件(我假設它是由一些其它軟件使用)。

+0

親愛的Aksela請在這裏找到我的文件https://drive.google.com/drive/my-drive。第一張表包含我得到的結果,第二張表包含我希望獲得結果的方式。提前致謝 – user2134713