我无法解决以下有关(通过限制列数简化)数据框“注释”的问题。
require(irr)
# data
annotations <- read.table(text = "Obj1 Obj2 Obj3
Rater1 a b c
Rater2 a b b
Rater3 a b c", header = TRUE, stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
我想将 irr 包中的一致函数应用到行的所有组合(而不是排列),从而产生以下结果。
Agreement rater 1-2: 67%
Agreement rater 1-3: 100%
Agreement rater 2-3: 67%
Run Code Online (Sandbox Code Playgroud)
我需要对所有行组合运行一个函数,并且该函数需要访问多个/所有列。
我已经找出了问题的部分答案;我已经生成了一个正在运行的组合列表combn(rownames(annotations), 2),但我不知道如何在不编写低效的 for 循环的情况下使用该列表。
我尝试过应用,如 中所示apply(annotations, 1, agree),但我只能让它在一行上工作,而不是前面提到的组合。
有人知道如何继续吗?
更新:根据您的建议,以下解决方案有效。(我使用了kappa2irr 包而不是agree,但主要问题的解决方案保持不变。)
require(irr) #require the irr library for agreement calculations
annotations <- read.table(text = "Obj1 Obj2 Obj3
Rater1 …Run Code Online (Sandbox Code Playgroud)