我在下面編寫的代碼遇到問題。我需要爲我的輸入矩陣(aa)的每一行計算距離矩陣,並將結果保存在rowname作爲文件名的文件中。 的AA矩陣是100×100,但是測試矩陣是這樣的:R中的多個輸出文件名稱
ID A B C D
AA 0.5 0.4 0.9 0.5
BB 0.2 0.1 0.8 0.96
CC 0.3 0.5 0.8 0.4
DD 0.1 0.4 0.5 0.78
Pratically我想獲得一個文件用於包含距離矩陣的每一行,並以「aa.txt文件」和「BB。 txt「和」CC.txt「和」DD.txt「作爲文件名。
a<- read.table ("test_matrix.txt", header = TRUE)
aa<- structure (a, class = "data.frame")
d_ply(aa, 1, function(row){
cu<- dist(as.numeric(row))
cucu<- as.matrix(cu)
write.table(cucu, quote = TRUE, file = paste(row$ID, "txt", sep = "."), sep = "\t")
}, .progress='text', .print = TRUE)
使用上面的代碼,我得到了正確的文件名,但內容是不正確的,因爲我有一個5x5矩陣,而不是一個4x4的一個。有人能告訴我哪個是問題嗎?我想在閱讀標題... 謝謝!
你想在你的寫步驟'row.names = FALSE'。文本文件中的第一列是輸出矩陣的行名稱。 (個人,我認爲它是一個奇怪的默認值!) – Justin
@Justin其實,我認爲他們需要做'as.numeric(row [-1])'去除ID列的值之前,任何工作。 (還有一個錯字:hader應該是標題)。 – joran
我在read.table中收到一個錯誤我添加row.names = FALSE – Gabelins