0

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

样品1 样品2 样品3
基因1 5 10 15
基因2 2 8 10
基因3 3 9 10

df2

样品1 样品2 样品3
基因1 40 50 65
基因2 12 18 0
基因3 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
  }
}

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

4

1 回答 1

0

无需循环两次,因为两个数据框的列数相同。它在我计算机上类似大小的数据集上运行大约 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
}
于 2022-01-27T14:30:12.227 回答