如何从pairwise.t.test获取df和t值?

2024-03-17

有没有办法从a中获取t值和dfpairwise.t.test对于相关数据?

Example:

 data<-c(2,3,2,2,5,2,4,2,4,3,4,2)
 time<-c(1,1,1,1,2,2,2,2,3,3,3,3)

 pairwise.t.test(data, time,p.adjust.method= "bonf",paired=TRUE)

给我:

  Pairwise comparisons using paired t tests 

 data:  data and time 

   1    2   
 2 1.00 -   
 3 0.55 1.00

 P value adjustment method: bonferroni 

我想要相同的 t 值和 df 格式。


您可以通过编写自定义函数从pairwise.t.test 获取df 和t 值。这是一个可以执行此操作的函数:

pairwise.t.test.with.t.and.df <- function (x, g, p.adjust.method = p.adjust.methods, pool.sd = !paired, 
                                           paired = FALSE, alternative = c("two.sided", "less", "greater"), 
                                           ...) 
{
    if (paired & pool.sd) 
        stop("pooling of SD is incompatible with paired tests")
    DNAME <- paste(deparse(substitute(x)), "and", deparse(substitute(g)))
    g <- factor(g)
    p.adjust.method <- match.arg(p.adjust.method)
    alternative <- match.arg(alternative)
    if (pool.sd) {
        METHOD <- "t tests with pooled SD"
        xbar <- tapply(x, g, mean, na.rm = TRUE)
        s <- tapply(x, g, sd, na.rm = TRUE)
        n <- tapply(!is.na(x), g, sum)
        degf <- n - 1
        total.degf <- sum(degf)
        pooled.sd <- sqrt(sum(s^2 * degf)/total.degf)
        compare.levels <- function(i, j) {
            dif <- xbar[i] - xbar[j]
            se.dif <- pooled.sd * sqrt(1/n[i] + 1/n[j])
            t.val <- dif/se.dif
            if (alternative == "two.sided") 
                2 * pt(-abs(t.val), total.degf)
            else pt(t.val, total.degf, lower.tail = (alternative == 
                                                         "less"))
        }
        compare.levels.t <- function(i, j) {
            dif <- xbar[i] - xbar[j]
            se.dif <- pooled.sd * sqrt(1/n[i] + 1/n[j])
            t.val = dif/se.dif 
            t.val
        }       
    }
    else {
        METHOD <- if (paired) 
            "paired t tests"
        else "t tests with non-pooled SD"
        compare.levels <- function(i, j) {
            xi <- x[as.integer(g) == i]
            xj <- x[as.integer(g) == j]
            t.test(xi, xj, paired = paired, alternative = alternative, 
                   ...)$p.value
        }
        compare.levels.t <- function(i, j) {
            xi <- x[as.integer(g) == i]
            xj <- x[as.integer(g) == j]
            t.test(xi, xj, paired = paired, alternative = alternative, 
                   ...)$statistic
        }
        compare.levels.df <- function(i, j) {
            xi <- x[as.integer(g) == i]
            xj <- x[as.integer(g) == j]
            t.test(xi, xj, paired = paired, alternative = alternative, 
                   ...)$parameter
        }
    }
    PVAL <- pairwise.table(compare.levels, levels(g), p.adjust.method)
    TVAL <- pairwise.table.t(compare.levels.t, levels(g), p.adjust.method)
    if (pool.sd) 
        DF <- total.degf
    else
        DF <- pairwise.table.t(compare.levels.df, levels(g), p.adjust.method)           
    ans <- list(method = METHOD, data.name = DNAME, p.value = PVAL, 
                p.adjust.method = p.adjust.method, t.value = TVAL, dfs = DF)
    class(ans) <- "pairwise.htest"
    ans
}
pairwise.table.t <- function (compare.levels.t, level.names, p.adjust.method) 
{
    ix <- setNames(seq_along(level.names), level.names)
    pp <- outer(ix[-1L], ix[-length(ix)], function(ivec, jvec) sapply(seq_along(ivec), 
        function(k) {
            i <- ivec[k]
            j <- jvec[k]
            if (i > j)
                compare.levels.t(i, j)               
            else NA
        }))
    pp[lower.tri(pp, TRUE)] <- pp[lower.tri(pp, TRUE)]
    pp
}

执行示例:

data<-c(2,3,2,2,5,2,4,2,4,3,4,2)
time<-c(1,1,1,1,2,2,2,2,3,3,3,3)

result <- pairwise.t.test.with.t.and.df(data, time,p.adjust.method= "bonf",paired=TRUE)

# Print t-values
result[[5]]

# Print dfs
result[[6]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从pairwise.t.test获取df和t值? 的相关文章

  • 限制数据框中所有单元格的字符串长度?

    您好 有没有一种方法可以限制 data frame 中所有列的字符串文本大小 而不必循环遍历每一列并一次使用 str trunc 之类的东西 例如下面的数据框 我可以将所有文本大小限制为仅 5 个字符 而不必一次只执行一列吗 如果有 50
  • R 中的发散积分可在 Wolfram 中求解

    我知道我以前问过同样的问题 但由于我是新来的 这个问题问得不好而且不可重现 因此我在这里尝试做得更好 如果我只编辑旧的 可能没有人会读它 我有一个想要积分的二重积分 ff lt function g t exp 16 g exp 8 t t
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • 将 sf voronoi 多边形裁剪到边界框时出错

    我正在尝试将 voronoi polygons 使用 sf package 创建 剪辑 到边界框 但它引发了我无法定义的错误 我对 R 的空间世界不太有经验 感谢所有帮助 样本数据 stations lt structure list ST
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • 带 R 的多彩标题

    我想添加颜色某些词在我的图表标题中 我已经能够在这里找到一些先例 http blog revolutionanalytics com 2009 01 multicolor text in r html 具体来说 我希望用撇号括起来的文本 在
  • 表单提交时出现 rvest 错误

    我想从以下网页中抓取数据 https swgoh gg u zozo collection 180 emperor palpatine https swgoh gg u zozo collection 180 emperor palpati
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查
  • R 中的 Websocket

    我设法在 R 中建立到 Mtgox websocket 的连接 规格如下 url https socketio mtgox com mtgox Currency USD https socketio mtgox com mtgox Curr
  • R - tidyr - 变异并传播多列

    我在 R 中有以下数据框 my df test lt data frame V1 c 1 2 1 V2 c A B A V3 c S1 S1 S2 V4 c x x x V5 c y y y V6 c A B C V7 c D E F my
  • 检查单词是否存在于英语词典 r 中

    我正在对多个进行一些文本分析resume生成一个wordcloud using wordcloud包装连同tm用于在 R 中预处理文档语料库的包 我面临的问题是 检查语料库中的单词是否具有某种含义 即 它属于英语词典 如何一起挖掘 处理多份
  • 如何在我自己的网络服务器上导出并托管 ggvis 图表?

    据我了解 ggvis 运行在闪亮的之上 但我不知道如何在没有 R shiny 的情况下导出在网络服务器上运行单个 ggvis 图表所需的所有文件 这对于交互式绘图来说是不可能的 因为 每个交互式 ggvis 图都必须连接到正在运行的 R 会
  • 如何匹配R中列之间的多个对应值

    我有一个结构如下的数据框 ID Value1 Value2 1 a d g f 12 14 15 9 2 b c e 5 18 20 3 h i j 6 7 25 所以我有一个 ID 和两个值 对于值 1 有多个对应于值 2 的选项 我想最
  • ggplot 直方图相对于轴的位置不正确

    我试图这样绘制直方图 Todo lo haremos con base en un variable aleatoria Uniforme 0 1 set seed 26 n 10000 U lt runif n n Supongamos
  • 在 Ubuntu Lucid 中从二进制安装 R 包

    我已经使用以下命令在 Ubuntu Lucid 中安装了 R sudo aptitude 安装 r base 当我尝试 install packages 时 它似乎会下载源代码 然后花费很长时间来编译它 我怎样才能像我在 Windows 上

随机推荐