普通网友 2023-09-27 10:48 采纳率: 0%
浏览 9

table1中Fisher检验P值问题

在做Fisher检验的时候出现报错

Error in fisher.test(table(y, g)) :
FEXACT[f3xact()] error: hash key 3e+09 > INT_MAX, kyy=2863, it[i (= nco = 4)]= 474.
Rather set 'simulate.p.value=TRUE'

代码如下,请问如何解决


```r
pvalue <- function(x, ...){
  y <- unlist(x)
  g <- factor(rep(1:length(x),times=sapply(x,length)))
  if (is.numeric(y)){
    p <- t.test(y ~ g)$p.value
  }else{
    p <- fisher.test(table(y,g))$p.value
  }
  c("",sub("<","&lt;",format.pval(p,digits = 3,eps = 0.001)))
}

table1(~factor(data$Sex)
       +factor(data$age_classification)
       +factor(data$Race)
       +factor(data$primary_site)
       +factor(data$histology)
       +factor(data$tumor_size)
       +factor(data$Grade)
       +factor(data$AJCC.T)
       +factor(data$AJCC.N)
       +factor(data$AJCC.M)
       +factor(data$AJCC.Stage)|data$dataset*data$lymph.node.classification,
       data=data,overall=F,extra.col=list("P-value"=pvalue),topclass="Rtable1-zebra")


```

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-27 22:08
    关注

    该回复引自免费微信小程序-皆我百晓生:


    根据报错信息,你可以尝试在fisher.test函数中设置simulate.p.value参数为TRUE来解决问题。修改代码如下:

    pvalue <- function(x, ...){
      y <- unlist(x)
      g <- factor(rep(1:length(x),times=sapply(x,length)))
      if (is.numeric(y)){
        p <- t.test(y ~ g)$p.value
      }else{
        p <- fisher.test(table(y,g), simulate.p.value=TRUE)$p.value
      }
      c('',sub('<','&lt;',format.pval(p,digits = 3,eps = 0.001)))
    }
    
    table1(~factor(data$Sex)
           +factor(data$age_classification)
           +factor(data$Race)
           +factor(data$primary_site)
           +factor(data$histology)
           +factor(data$tumor_size)
           +factor(data$Grade)
           +factor(data$AJCC.T)
           +factor(data$AJCC.N)
           +factor(data$AJCC.M)
           +factor(data$AJCC.Stage)|data$dataset*data$lymph.node.classification,
           data=data,overall=F,extra.col=list('P-value'=pvalue),topclass='Rtable1-zebra')
    

    通过设置simulate.p.value=TRUE,可以使用模拟方法来计算Fisher检验的P值,从而避免报错。希望这个解决方案对你有帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 9月27日

悬赏问题

  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?
  • ¥50 寻找fpga的benchmark
  • ¥50 如何在arduino上,实现用4×4矩阵键盘按键控制2004显示屏输出图中显示功能的代码?
  • ¥15 P1口接8个发光二极管,利用定时计数器1编写程序
  • ¥20 keil5编译找不到.h文件该如何解决