Матрица "корреляции" в R - PullRequest
       3

Матрица "корреляции" в R

0 голосов
/ 04 ноября 2019

Я уверен, что этот вопрос был задан, но я не уверен, какие условия для поиска. Я хочу сгенерировать таблицу / матрицу / фрейм данных, который показывает для каждого файла, равна ли 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])
    }
}

Существует ли функция, которая будет выполнять этот анализ, или лучший способ сделать это?

1 Ответ

1 голос
/ 04 ноября 2019

Попробуйте с

data <- outer(code,code,function(x,y) ifelse(x==y,1,0))
rownames(data) <- name
colnames(data) <- name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...