编写一个成对函数,比较可以通过gt_summary包中的add_stat传递的分类变量之间的差异。
创始人
2024-12-06 00:30:56
0次

以下是一个示例函数,可以通过add_stat运行,并在汇总表中显示结果。

#在这里定义pairwise函数,传入一个dataframe和一个分类变量的字符向量
pairwise_diff <- function(data, factor_cols) {
  #创建空白矩阵来保存差异结果
  n_vars <- length(factor_cols)
  output <- matrix(NA, nrow = n_vars, ncol = n_vars, dimnames = list(factor_cols, factor_cols))
  #双层嵌套循环,一个变量与另一个变量的差异进行比较
  for (i in 1:n_vars) {
    for (j in 1:n_vars) {
      # 只涉及未比较过的变量
      if (is.na(output[i, j])) {
        diff_col <- data[, factor_cols[i]] != data[, factor_cols[j]]
        num_diff <- sum(diff_col)
        output[i, j] <- num_diff
        output[j, i] <- num_diff
      }
    }
  }
  # 返回格式化的输出
  output_dimnames <- paste0(c("数目不同的 ", factor_cols), " 对之间的差异 (n)")
  return(list(statistic = output, output_dimnames = as.character(output_dimnames)))
}

# 用mtcars数据集示例
library(gt)
data(mtcars)

#在汇总表中注入自定义函数
gt_summary(mtcars) %>% add_stat(tab_style = TRUE, 
                                 stat_fun = pairwise_diff, 
                                 columns = c("gear", "carb"))

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...