Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 运行费希尔&x2019;s对存在/不存在数据帧的所有列进行精确测试_R - Fatal编程技术网

R 运行费希尔&x2019;s对存在/不存在数据帧的所有列进行精确测试

R 运行费希尔&x2019;s对存在/不存在数据帧的所有列进行精确测试,r,R,我有一个数据框,其中包含每个样本中是否存在蛋白质序列,每一行是不同的样本,每一列是蛋白质序列,除了最后一列有每个样本的组分配 如下所示: df <- data.frame(c(0,1,1,1,0,0), c(0,1,0,1,0,1), c(1,0,1,0,0,0), c(0, 0,0,1,1,1) rownames(df) <- c(“AA”, “AB”, “AC”, “STATUS”) dflappy迭代数据帧的列,因此您可以执行以下操作: l1 <- lapply(df,

我有一个数据框,其中包含每个样本中是否存在蛋白质序列,每一行是不同的样本,每一列是蛋白质序列,除了最后一列有每个样本的组分配

如下所示:

df <- data.frame(c(0,1,1,1,0,0), c(0,1,0,1,0,1), c(1,0,1,0,0,0), c(0, 0,0,1,1,1)
rownames(df) <- c(“AA”, “AB”, “AC”, “STATUS”)

df
lappy
迭代数据帧的列,因此您可以执行以下操作:

l1 <- lapply(df, fisher.test, y = df$STATUS)
l1
要仅获取p值,请再次使用
lappy

lapply(l1, function(x) x$p.value)
要以可用的形式获得它,您可以
取消列出它:

unlist(lapply(l1, function(x) x$p.value))
很明显,您想要舍弃STATUS值,因为这没有多大意义

“整洁”的方法是使用
purrr
broom

purrr::map(df, ~fisher.text(.x, df$STATUS)) %>% 
  purrr::map_dfr(broom::tidy, .id = "sequence")
但是我不知道哪种方法对那么多的列来说更快


此外,您可能还应该关注这么多测试的错误率。您是否计划通过某种方法(例如Bonferroni)调整p值?

我想将其用作特征选择方法,以识别在基于p值的分类中最有用的变量。我对统计数据不太熟悉,所以你会建议对此进行p值修正吗?如果你能用这种方法解释高(?)错误率的原因,我将不胜感激。@JackArnestad,这是一个问题,因为人们可能更熟悉你的领域。你可能可以将这些测试用作筛选而不是假设测试,但请确保你正为你的目标适当地使用它。您可以在上找到关于这个确切主题的良好讨论,如@Brian所建议的,请参阅关于输入。R具有
p.adjust
功能。
unlist(lapply(l1, function(x) x$p.value))
    AA     AB     AC STATUS 
   1.0    1.0    0.4    0.1
purrr::map(df, ~fisher.text(.x, df$STATUS)) %>% 
  purrr::map_dfr(broom::tidy, .id = "sequence")
  sequence  estimate p.value    conf.low  conf.high                             method alternative
1       AA 0.3219834     1.0 0.002852567  14.836129 Fisher's Exact Test for Count Data   two.sided
2       AB 3.1057504     1.0 0.067403027 350.561487 Fisher's Exact Test for Count Data   two.sided
3       AC 0.0000000     0.4 0.000000000   4.922984 Fisher's Exact Test for Count Data   two.sided
4   STATUS       Inf     0.1 0.647974586        Inf Fisher's Exact Test for Count Data   two.sided