晚上好,
我在R中找到了来自classAgreement
包中的e1071
函数非常有用且在使用列联表时非常有用。
它适用于二维。 但如果我有3个或更多维度则不起作用。
我已经查看过几本书籍,论文和网页,但仍然找不到一个内置函数,它可以作为classAgreement()使用2个以上的维度。
有人知道R中的功能/包可以做到吗?
如果它不存在,有人可以指出我在正确的方向上构建一个在交叉验证中使用3维的函数吗?
谢谢。
答案 0 :(得分:2)
您可以使用apply,第三个边距索引。例如:
g1 <- sample(1:5, size=1000, replace=TRUE)
g2 <- sample(1:5, size=1000, replace=TRUE)
g3 <- sample(1:5, size=1000, replace=TRUE)
tab <- table(g1, g2,g3)
apply(tab,3,classAgreement)
编辑以获取对角元素
res <- apply(tab,3,classAgreement)
sapply(res, '[[','diag')
1 2 3 4 5
0.2146341 0.2029703 0.2227488 0.1513761 0.2073171
sum(sapply(res, '[[','diag'))
[1] 0.9990465