在大型表的每一行上完成功能的最简单方法是什么?

瘦_基因

所以我想在3000+行表的每一行上做一个Fisher精确测试(单面),其格式与下面的示例匹配

基因 sample_alt sample_ref Population_alt Population_ref
4 556 770 37000
5 555 771 36999
6 554 772 36998

理想情况下,我想使表的另一列等于

[(4 + 556)!(4 + 770)!(770 + 37000)!(556 + 37000)!] / [4!(556!)770!(37000!)(4 + 556 + 770 + 37000)! ]

对于数据的第一行,依此类推,对于表的每一行,依此类推。

我知道如何在R中对简单的2x2表执行费舍尔测试,但是我不知道如何将fisher.test()函数应用于大型表的每一行。我也不能使用excel公式,因为阶乘的数量太大,以至于达到excel的位数限制并导致#NUM错误。简单地完成此操作的最佳方法是什么?提前致谢!

瘦_基因

从桌面上的制表符分隔的文本文件(table.txt)开始,其格式与词干问题中显示的格式相同

if(!require(psych)){install.packages("psych")}

multiFisher = function(file="Desktop/table.txt", saveit=TRUE, 
                       outfile="Desktop/table.csv", progress=T,
                       verbose=FALSE, digits=3, ... )
  
{

require(psych)

Data = read.table(file, skip=1, header=F,
                  col.names=c("Gene", "MD", "WTD", "MC", "WTC"), ...)

if(verbose){print(str(Data))}

Data$Fisher.p   = NA
Data$phi        = NA
Data$OR1        = format(0.123, nsmall=3)
Data$OR2        = NA

if(progress){cat("\n")}

for(i in 1:length(Data$Gene)){
  
  Matrix = matrix(c(Data$WTC[i],Data$MC[i],Data$WTD[i],Data$MD[i]), nrow=2)
  
  Fisher = fisher.test(Matrix, alternative = 'greater')

  Data$Fisher.p[i] = signif(Fisher$p.value, digits=digits) 

  Data$phi[i] = phi(Matrix, digits=digits)
  
  OR1 = (Data$WTC[i]*Data$MD[i])/(Data$MC[i]*Data$WTD[i])
  OR2 = 1 / OR1
  
  Data$OR1[i] = format(signif(OR1, digits=digits), nsmall=3)
  
  Data$OR2[i] = signif(OR2, digits=digits)
  
  if(progress) {cat(".")}

}  

if(progress){cat("\n"); cat("\n")}

if(saveit){write.csv(Data, outfile)}

return(Data)

}

multiFisher()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Python CSV 删除 CSV 中一行的最简单方法是什么?

来自分类Dev

从命令行在文件的每一行的开头添加字符串的最简单方法是什么?

来自分类Dev

在nginx上启用PHP的最简单方法是什么?

来自分类Dev

在nginx上启用PHP的最简单方法是什么?

来自分类Dev

在Debian上安装JRE的最简单方法是什么?

来自分类Dev

使浏览器每说5秒刷新一次页面的最简单方法是什么?

来自分类Dev

使用Django框架显示大型查询的最简单方法是什么?

来自分类Dev

在同一SQL实例上复制大型数据库的最简单方法

来自分类Dev

在矩阵的每一行上应用函数的最快方法是什么?

来自分类Dev

C-测试主要功能的最简单方法是什么?

来自分类Dev

C-测试主要功能的最简单方法是什么?

来自分类Dev

在SQL中重复每N行的最简单方法

来自分类Dev

在Haskell中生成html表的最简单方法是什么

来自分类Dev

Docker:保护私有注册表的最简单方法是什么?

来自分类Dev

在Swift中清空并保存核心数据表的最简单方法是什么?

来自分类Dev

在Haskell中生成html表的最简单方法是什么

来自分类Dev

在Jackson ObjectMapper上配置缩进间距的最简单方法是什么?

来自分类Dev

在OS X上实现浮动按钮UI视图的最简单方法是什么

来自分类Dev

将默认焦点放在AngularJS中的元素上的最简单方法是什么?

来自分类Dev

在Linux上的c ++ / Qt中触发并忘记线程的最简单方法是什么?

来自分类Dev

在64位ubuntu上安装32位Java的最简单方法是什么

来自分类Dev

在Raspberry Pi上运行OSX openFrameworks项目的最简单方法是什么?

来自分类Dev

在Linux机器上检测python 3中按键的最简单方法是什么?

来自分类Dev

在PostgreSQL上创建计算分类变量的列的最简单方法是什么?也许某种枢轴?

来自分类Dev

在Windows上运行依赖bash的dockerfile的最简单方法是什么?

来自分类Dev

在Debian系统上仅需基本连接的最简单方法是什么?

来自分类Dev

在Linux framebuffer上绘制图形的最简单方法是什么?

来自分类Dev

在Linux上嗅探TCP流量数据的最简单方法是什么?

来自分类Dev

在Ubuntu Touch(bq aquaris 4.5)上共享的最简单方法是什么

Related 相关文章

  1. 1

    使用 Python CSV 删除 CSV 中一行的最简单方法是什么?

  2. 2

    从命令行在文件的每一行的开头添加字符串的最简单方法是什么?

  3. 3

    在nginx上启用PHP的最简单方法是什么?

  4. 4

    在nginx上启用PHP的最简单方法是什么?

  5. 5

    在Debian上安装JRE的最简单方法是什么?

  6. 6

    使浏览器每说5秒刷新一次页面的最简单方法是什么?

  7. 7

    使用Django框架显示大型查询的最简单方法是什么?

  8. 8

    在同一SQL实例上复制大型数据库的最简单方法

  9. 9

    在矩阵的每一行上应用函数的最快方法是什么?

  10. 10

    C-测试主要功能的最简单方法是什么?

  11. 11

    C-测试主要功能的最简单方法是什么?

  12. 12

    在SQL中重复每N行的最简单方法

  13. 13

    在Haskell中生成html表的最简单方法是什么

  14. 14

    Docker:保护私有注册表的最简单方法是什么?

  15. 15

    在Swift中清空并保存核心数据表的最简单方法是什么?

  16. 16

    在Haskell中生成html表的最简单方法是什么

  17. 17

    在Jackson ObjectMapper上配置缩进间距的最简单方法是什么?

  18. 18

    在OS X上实现浮动按钮UI视图的最简单方法是什么

  19. 19

    将默认焦点放在AngularJS中的元素上的最简单方法是什么?

  20. 20

    在Linux上的c ++ / Qt中触发并忘记线程的最简单方法是什么?

  21. 21

    在64位ubuntu上安装32位Java的最简单方法是什么

  22. 22

    在Raspberry Pi上运行OSX openFrameworks项目的最简单方法是什么?

  23. 23

    在Linux机器上检测python 3中按键的最简单方法是什么?

  24. 24

    在PostgreSQL上创建计算分类变量的列的最简单方法是什么?也许某种枢轴?

  25. 25

    在Windows上运行依赖bash的dockerfile的最简单方法是什么?

  26. 26

    在Debian系统上仅需基本连接的最简单方法是什么?

  27. 27

    在Linux framebuffer上绘制图形的最简单方法是什么?

  28. 28

    在Linux上嗅探TCP流量数据的最简单方法是什么?

  29. 29

    在Ubuntu Touch(bq aquaris 4.5)上共享的最简单方法是什么

热门标签

归档