如果我是该网站的新手,如果我没有正确格式化我的代码,请原谅。我也不知道如何正确提供样本数据。
我的数据集为42 obs。非正态分布数据的37个变量(第一列为组,3组);我想比较这三个组之间的所有36个参数,并进行后续事后分析(pairwise.wilcox?)。
数据是三个不同患者组的流通池计数。我已经能够执行初始比较,创建一个公式并运行aov(尽管我想做Kruskal),但是还没有找到一种以相同方式对所有变量进行事后分析的方法。
#Data
Type Neutrophils Monocytes NKC .....
------------------------------------------
IN 546 2663 545
IN 0797 7979 008
OUT 0899 3899 345
OUT 6868 44533 689
HC 9898 43443 563
#Cbind all variable together to run model on all
formula <- as.formula(paste0("cbind(", paste(names(LessCount)[-1],
collapse = ","), ") ~ Type"))
print(formula)
#Run test on model
fit <- aov(formula, data=LessCount)
#Print results
summary(fit)
Response Neutrophils :
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 18173966 9086983 1.8099 0.1771
Residuals 39 195806220 5020672
Response Monocytes :
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 694945 347472 0.7131 0.4964
Residuals 39 19004809 487303
Response Mono.Classic :
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 1561778 780889 2.5842 0.08833 .
Residuals 39 11785116 302182
###export anova####
capture.output(summary(fit),file="test1.csv")
#If Significant,Check which# (currently doing by hand individually)
pairwise.wilcox.test(LessCount$pDCs, LessCount$Type,
p.adjust.method = "BH")
我在表中找到控制台中每个变量的aov结果,但由于我需要每个p值,因此想对post hoc做同样的事情。
谢谢。
答案 0 :(得分:0)
也许您可以直接使用函数kruskal.test()
并获取p.values。
这里是虹膜数据集的示例。我使用函数apply()
来将kruskal.test函数应用于每个变量(物种除外,后者是具有组信息的变量)。
data(iris)
apply(iris[-5], 2, function(x) kruskal.test(x = x, g = iris$Species)$p.value)
# Sepal.Length Sepal.Width Petal.Length Petal.Width
# 8.918734e-22 1.569282e-14 4.803974e-29 3.261796e-29