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)
}

我想从 aa 矩阵的每一行中获取一个文件(文件名应该是行的标题),包含该行的距离矩阵,但似乎很难。如果我尝试代码,我会收到此错误:

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

我该如何解决这个问题?

4

1 回答 1

3

首先,假设aa是一个数据框,然后A只是一行。如果您已经在使用 ,则不需要使用 for 循环,该循环d_ply旨在将某些内容应用于数据框的每一行。

第二个问题是dist返回一个dist对象,在写入之前必须将其转换为矩阵。以下代码将执行此操作:

第三,row在使用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 回答