r - 在 R 中的大型数据框中的多列上精确迭代 2x2 表和渔民
问题描述
我是r的新手,我正在寻找有关循环和迭代大型数据框以使用该table()
函数创建多个 2x2 表的帮助,然后fishers.test()
在每个表上导出优势比和p 值s。我的数据框有簇和基因作为这样的列:
**df**
Tag Cluster Gene1 Gene2 Gene3 Gene4
1 a 1 0 0 1
2 b 0 1 1 1
3 c 1 1 0 0
4 d 0 0 0 1
5 e 1 1 0 0
这是我想要迭代和循环的代码。
tab<-table(df$Cluster =="a", df$Gene1)
fisher.test(tab)
我不知道从哪里开始,如果有任何帮助,我将不胜感激。
谢谢!
PS我的实际数据框尺寸是1010 x 191
解决方案
如果我们有兴趣fisher.test
通过在“集群”上使用相同的条件来完成所有“基因”列
library(dplyr)
out <- df %>%
summarise_at(vars(starts_with('Gene')), ~
list(table(Cluster == 'a', .) %>%
fisher.test))
out$Gene1
out$Gene2
在base R
中,这可以通过lapply
out2 <- lapply(df[startsWith(names(df), "Gene")], function(v)
fisher.test(table(df$Cluster == "a", v)))
out2$Gene1
out2$Gene2
数据
df <- structure(list(Tag = 1:5, Cluster = c("a", "b", "c", "d", "e"
), Gene1 = c(1L, 0L, 1L, 0L, 1L), Gene2 = c(0L, 1L, 1L, 0L, 1L
), Gene3 = c(0L, 1L, 0L, 0L, 0L), Gene4 = c(1L, 1L, 0L, 1L, 0L
)), class = "data.frame", row.names = c(NA, -5L))
推荐阅读
- regex - 模式匹配后的下一个单词
- verification - 在dafny中验证条件下的序列和
- android - MaterialDatePicker : 今天如何设置自定义
- c# - 使用 roslyn 在 c# 源代码中查找类引用
- angular - 量角器:为所有 browser.wait 调用设置超时
- c# - 使用 DisplayModeProvider 指定移动视图的 ASP.NET 应用程序启动时要转到的路由
- java - 使用 OR 检查 if 语句中的多个空值并将错误存储在数组中
- typescript - 从对象创建简单的字符串数组
- groovy - 固定小数位 / Java Groovy
- c# - EntityFramework Core 中的数据库更新异常