1

自分が書いたRコードに問題があります。特にそれはこのように見えます:

n<- nrow(aa)
for (i in 1:n)
{
A<- aa[i,]
d_ply(A, 1, function(row){  
cu<- dist(A)
    write.table(cu, file = paste(row$header, "txt", sep     = "."), sep = "\t")
}, .progress='text', .print = TRUE)
}

行列の各行から単一のファイルを取得したいのですが(ファイル名は行のヘッダーである必要があります)、その行の距離行列が含まれていますが、非常に難しいようです。コードを試してみると、次のエラーが発生します。

cannot coerce class '"dist"' into a data.frame

どうすればこれを解決できますか?

4

1 に答える 1

3

aaまず、がデータフレームであると仮定すると、それAは1行だけです。d_plyデータフレームのすべての行に何かを適用するように設計されているをすでに使用している場合は、forループを使用する必要はありません。

2番目の問題はdist、オブジェクトを返すdistことです。オブジェクトは、書き込む前に行列に変換する必要があります。次のコードはそれを行います:

row第三に、を使用する前に、を1行のデータフレームからベクトルに変換する必要がありますdist

これにより、次のコードが生成されます。

d_ply(aa, 1, function(row){  
    cu<- dist(as.numeric(row[-1]))
    write.table(as.matrix(cu), file = paste(row$header, "txt", sep = "."), sep = "\t")
}, .progress='text', .print = TRUE)
于 2013-01-30T17:20:02.760 に答える