运行 对两个数据帧的行进行配对 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
}
我有两个大数据框(大约 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
}