将距离矩阵作为矩阵从R复制到excel中

时间:2014-10-14 06:30:22

标签: r excel matrix

我在数据框(x)中有一个列,我希望使用dist(x$columnname)函数找到所有条目之间的成对距离。输出是距离矩阵,但如果我使用writeClipboard函数将数据复制到excel中,我会得到所有成对距离的列表。有没有办法可以将它复制到excel中,保持矩阵格式不变?

2 个答案:

答案 0 :(得分:4)

尝试将矩阵转换为数据帧,然后将其写入csv文件。

mydf<-as.data.frame(as.matrix(dist_matrix_name))
write.csv(mydf,file = "filename.csv")

答案 1 :(得分:0)

为了将数据从R复制到Excel,我编写了这个小函数,你可以使用它:

    writeClipboardDf <- function (dat, format = 1, colnames = TRUE, rownames = FALSE, 
                              token = "\t") {
    if (is.null(dim(dat))) {
       writeClipboard(as.character(dat), format)
    }
    else {
       strDf <- apply(dat, 1, paste, collapse = token)
       if (rownames) {
          rn <- rownames(dat)
          if (is.null(rn)) {
             rn <- 1:(nrow(dat))
          }
          if (colnames) {
             strDf <- c(paste(names(dat), collapse = token), 
                        strDf)
             rn <- c("", rn)
          }
          strDf <- paste(rn, strDf, sep = token)
       }
       else {
          if (colnames) {
             strDf <- c(paste(names(dat), collapse = token), 
                        strDf)
          }
       }
       writeClipboard(strDf, format)
    }
}

基本上,它需要输入并添加标签\t,这样您就可以方便地将数据粘贴到Excel中。您所要做的就是致电writeClipboardDf(as.matrix(dist(x$columnname)))