1

晚上好,

在处理列联表时,我发现RclassAgreement中的包e1071中的函数非常有用且信息丰富。

它适用于二维。但如果我有 3 个或更多维度,它就不起作用。

我已经查看了几本书、论文和网页,但仍然找不到像 classAgreement() 一样具有超过 2 维的内置函数。

有人知道 R 中可以做到这一点的函数/包吗?

如果它不存在,有人能指出我正确的方向来构建一个在交叉验证中使用 3 维的函数吗?

谢谢你。

4

1 回答 1

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
于 2013-03-06T00:19:14.530 回答