Каппа применяется ко всем попарным комбинациям оценщиков и сохраняет результат

В большинстве случаев, когда вы не заботитесь о результате выполнения этой задачи, это не вызовет никаких проблем.

Но обратите внимание на эту специальную функцию future.get :

Эффекты согласованности памяти. Действия, выполняемые асинхронным вычислением, происходят до действий, следующих за соответствующим Future.get () в другом потоке.

пример:

int i = 0;

, и если вы дадите

i = 1;

в задаче, затем прочитайте i после future.get, он может гарантировать, что вы получите новое значение 1.

Не вызывая future.get, вы можете получить устаревшее значение 0.

0
задан Fredrik Karlsson 19 January 2019 в 15:50
поделиться

1 ответ

Решением было бы сохранить всю выходную структуру функции kappa2 в элемент списка и иметь элемент для каждой возможной комбинации столбцов:

# initialization
out_list <- list()
column <- 1

# cycle for storing kappa2's output structure
for (i in 1:(ncol(ex)-1)){
    for (j in (i+1):ncol(ex)){
        out_list[[column]] <- irr::kappa2(ex[,c(i,j)])
        # renaming the elements
        names(out_list)[column] <- paste0(i, "_", j)
        column <- column + 1
    }
}

В Если вам просто нужно значение Каппа для каждой пары столбцов, как вы сказали в комментариях, вы можете использовать следующий (очень похожий на предыдущий) код:

# initialization
# the number of columns of "out" is from mathematics
out <- as.data.frame(matrix(0, nrow = 1, ncol = ncol(ex) * (ncol(ex)-1) / 2))
column <- 1

# cycle for calculation kappa
for (i in 1:(ncol(ex)-1)){
    for (j in (i+1):ncol(ex)){
        out[1,column] <- irr::kappa2(ex[,c(i,j)])$value
        colnames(out)[column] <- paste0(i, "_", j)
        column <- column + 1
    }
}
0
ответ дан Ric S 19 January 2019 в 15:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: