R中"correlation"的矩阵

Matrix of "correlation" in R

我确定有人问过这个问题,但我不确定要搜索哪些术语。我想生成一个 table/matrix/dataframe 来显示每个文件的 md5sum 是否等于每个其他文件的 md5sum。下面的代码生成一些玩具数据和预期结果。由于此代码使用 for 循环,因此我假设这不是最佳方法。

options(stringsAsFactors = FALSE)

name <- letters[1:9]
code <- c("1", "2", "2", "3", "4", "5", "2", "6", "6")
pairs <- data.frame(name = name, code = code)

for (i in 1:length(name)) {
    for (j in 1:length(name)) {
        if (i == 1 & j == 1) {
            data <- setNames(
                data.frame(
                    matrix(ncol = length(name), nrow = length(name)), 
                    row.names = name
                ), 
                name
            )
        }
        data[i, j] <- as.numeric(code[i] == code[j])
    }
}

是否有执行此分析的函数或更好的方法?

试试

data <- outer(code,code,function(x,y) ifelse(x==y,1,0))
rownames(data) <- name
colnames(data) <- name