我正在尝试对数据框的每一列运行统计测试并将结果保存到文件中。我有两个问题:
- 有没有办法使用 apply 而不是 for 循环来做到这一点?和
- 我可以将所有测试的结果保存到一个文件中吗?
给定一个玩具数据框:
DataFrame <- data.frame(Treatment= rep(c("A", "B", "C"), each = 6),
A=sample(1:100, 18),
B=sample(1:100, 18),
C=sample(1:100, 18))
到目前为止,我已经完成了这个,它运行了我想要的测试(在这种情况下是成对的 t 测试,但我对其他测试做同样的事情),但将每个测试的结果保存到一个单独的文件中:
library(MASS)
Col_pairwise.t.test <- function(data.frame){DataFrame <- data.frame
for (i in 2:length(DataFrame)){
i_test <- pairwise.t.test(DataFrame[ ,i], DataFrame$Treatment, p.adj = "none")
write.matrix(i_test$p.value, file = paste(colnames(DataFrame[i]),
+ "_t_test.txt", sep = ""), sep="\t")
}}
Col_pairwise.t.test(DataFrame)
我可以使用 apply 而不是 for 循环来运行测试,但是当我这样做时不知道如何将 p 值保存到文件中:
apply(DataFrame[ , 2:4], 2, pairwise.t.test, g=DataFrame$Treatment, p.adj = "none")
我对 R 还是很陌生,任何帮助都将不胜感激!我确信有一种更好的方法可以用 apply 而不是 for 循环来做我已经在做的事情,而且我知道必须有一种方法来存储 t 测试的所有结果并将它们写入文件结束,我只是不知道它是什么。
谢谢!