运行 对两个数据帧的行进行配对 wilcoxon 测试

running paired wilcoxon test on rows of two dataframes

我有两个大数据框(大约 19000 行和 71 列)如下 df1

sample1 sample2 sample3
gene1 5 10 15
gene2 2 8 10
gene3 3 9 10

df2

sample1 sample2 sample3
gene1 40 50 65
gene2 12 18 0
gene3 31 19 10

我正在尝试对具有相同索引的行执行 wilcoxon 秩和检验,但代码在 google colab 上永远占用!! 到目前为止我的代码

wilc_results= c()
for( x in 1:nrow(df1)){
  for (y in 1:nrow(df2)){
    result= wilcox.test(as.numeric(df2[y,]), as.numeric(f1d[x,]), 
                        alternative= 'two.sided', paired= T )
    wilc_results[length(wilc_results) + 1] <- result$p.value
  }
}

有没有更快的方法来获得所需的输出?

不需要循环两次,因为你的两个数据框都有相同的列数。它在我计算机上类似大小的数据集上运行大约 10 秒。

wilc_results <- list()
for(i in 1:nrow(df1)) {
  result <- wilcox.test(as.numeric(df1[i,]), as.numeric(df2[i,]),
                        alternative='two.sided', paired=T)
  wilc_results[[i]] <- result$p.value
}