请原谅,如果我没有正确地格式我的代码,因为我是新来的网站。我也不知道如何正确地提供样本数据。
我有42个obs的数据集。和37个变量(第一列是组,3组)的非正态分布数据;我想在3组之间比较我的所有36个参数,并进行后续的后期处理(pairwise.wilcox?)。
这些数据是三个不同患者组的流式细胞计数。我已经能够执行初始比较,创建公式并运行aov (尽管我想做Kruskal),但还没有找到以相同方式对所有变量执行post操作的方法。
#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结果表,但我想对post执行同样的操作,因为我需要每个p值。
提前谢谢你。
发布于 2019-05-14 01:13:38
也许您可以直接使用函数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 https://stackoverflow.com/questions/56116768
复制相似问题