【问题标题】:R - Count duplicates values for each rowR - 计算每行的重复值
【发布时间】:2018-06-25 23:23:28
【问题描述】:

我正在处理一个数据框,该数据框需要计算 Fleiss 的 Kappa 以实现评估者间协议。我为此使用了“irr”包。

除此之外,我需要为每个观察计算有多少评分者同意。

我的数据如下所示:

  a b c
1 1 1 1
2 1 2 2
3 2 3 2
4 3 3 1
5 4 2 1

我期待这样的结果,其中 count 代表同意的评分者人数

  a b c count
1 1 1 1 3 
2 1 2 2 2
3 2 3 2 2
4 3 3 1 2
5 4 2 1 0

非常感谢。

【问题讨论】:

  • 试试apply(df1, 1, function(x) sum(duplicated(x)|duplicated(x, fromLast = TRUE)))
  • 或使用table apply(df1, 1, function(x) {x1 <- table(x);sum(x1[x1 > 1]) })
  • 您好,欢迎来到 SO,我认为如果您展示到目前为止您已经尝试过的内容并告诉我们您到底卡在哪里,您的问题可以得到很大改善。
  • 嗨!我是 R 语言的新手,我不知道如何进行这种分析(即使在另一个软件上)。我一直在阅读有关“irr”包的信息,但我还没有找到我需要的东西。我考虑过使用 ifelse 或 case_when 等函数简单地转换数据,但没有结果。谢谢@akrun,我会尝试你的建议。

标签: r kappa


【解决方案1】:

如果您的数据位于名为 abc 的数据框中,则另一种解决方案:

as.numeric(apply(abc,1,function(x) { 
    ux<-unique(x); 
    tab <- tabulate(match(x, ux)); 
    mode <- ux[tab == max(tab)];
    ifelse(length(mode)==1,length(which(x==mode)),NA_character_);
} ))

当你运行它时:

[1]  3  2  2  2 NA

【讨论】:

    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多