r - 使用 group_by() 计算“分组”的 ICC 值
问题描述
我正在尝试为下表中的每个主题计算 ICC 值,但group_by()
没有像我认为的那样工作。
SubID Rate1 Rate2
1 1 2 5
2 1 2 4
3 1 2 5
4 2 3 4
5 2 4 1
6 2 5 1
7 2 2 2
8 3 2 5
9 3 3 5
我正在运行的代码如下:
df %>%
group_by(SubID) %>%
summarise(icc = DescTools::ICC(.)$results[3, 2])
和输出:
# A tibble: 3 x 2
SubID icc
<dbl> <dbl>
1 1 -0.247
2 2 -0.247
3 3 -0.247
似乎汇总不是根据组应用,而是应用于整个数据集。我不确定发生了什么。
输入()
structure(list(SubID = c(1, 1, 1, 2, 2, 2, 2, 3, 3), Rate1 = c(2,
2, 2, 3, 4, 5, 2, 2, 3), Rate2 = c(5, 4, 5, 4, 1, 1, 2, 5, 5)), class = "data.frame", row.names = c(NA,
-9L))
解决方案
不是很熟悉,library(DescTools)
但这是一个利用nest()
/map()
组合的潜在解决方案:
library(DescTools)
library(tidyverse)
df <- structure(
list(SubID = c(1, 1, 1, 2, 2, 2, 2, 3, 3),
Rate1 = c(2, 2, 2, 3, 4, 5, 2, 2, 3),
Rate2 = c(5, 4, 5, 4, 1, 1, 2, 5, 5)),
class = "data.frame", row.names = c(NA, -9L)
)
df %>%
nest(ICC3 = -SubID) %>%
mutate(ICC3 = map_dbl(ICC3, ~ ICC(.x)[["results"]] %>%
filter(type == "ICC3") %>%
pull(est)))
#> # A tibble: 3 x 2
#> SubID ICC3
#> <dbl> <dbl>
#> 1 1 2.83e-15
#> 2 2 -5.45e- 1
#> 3 3 -6.66e-16
由reprex 包(v0.3.0)于 2021-03-08 创建
推荐阅读
- reactjs - 是否可以为 pwa 生成 apk
- c++ - 如何将 MS MPI 与 Clion 一起使用
- java - 如何将 Spring 配置错误处理重定向到我的自定义错误处理?
- java - 在 Java 中已调用的方法中包含 For 循环
- python - LAB 值到图像的转换
- ms-media-foundation - 通过 MFT 拆分 AAC 音频通道
- python - 我正在尝试计算 csv 文件的每种语法的情感分数
- intake - 如何添加自定义方法以不仅在插件中以 dask 格式返回数据源,而且还以几种不同的自定义格式返回数据源?
- c++ - 如何导入外部库(cplex 求解器)
- javascript - javascript用逗号序列化json数组