R:如何创建多个统计测试结果的结果table?

R: How to create result table of the results of multiple statistics tests?

我是 R 的完全初学者

I 运行 使用以下代码对 R 中的一列数据进行多项卡方检验:

apply(mydata, 2, chisq.test, p=expected.probability)

并得到了多个这样的结果:

$Primary Tumor

Chi-squared test for given probabilities

data: newX[, i] X-squared = 515108, df = 6, p-value < 2.2e-16

$Primary Tumor_1

Chi-squared test for given probabilities

data: newX[, i] X-squared = 583205, df = 6, p-value < 2.2e-16

$Primary Tumor_2

Chi-squared test for given probabilities

data: newX[, i] X-squared = 58089, df = 6, p-value < 2.2e-16

能否从我测试的 50 个样本中提取包含肿瘤数、x 平方结果、df 和 p 值的结果 table?

我可以在 excel 中复制和粘贴,但我想学习更大样本的代码。

谢谢:)

试试这个

df <- apply(mydata, 2, chisq.test, p=expected.probability)

只需将它分配给一个可以从您的环境访问的变量...也请检查这个问题,它也可能对您有所帮助。

可以看到的是chisq测试的名称:

names(chisq.test(matrix(1:4,ncol=2)))
[1] "statistic" "parameter" "p.value"   "method"    "data.name" "observed" 
[7] "expected"  "residuals" "stdres" 

你需要的值是statistic (chisq), parameter (df), p.value.

所以我们模拟数据:

mydata = matrix(rpois(100,50),ncol=10)
colnames(mydata) = paste0("tumor",1:10)

并编写一个更精巧的函数,在测试后取出这些参数

res = apply(mydata,2,function(x){
chisq.test(x,p=rep(0.1,10))[c("statistic","parameter","p.value")]
})

然后我们将其设为 data.frame:

df = data.frame(id=names(res),do.call(rbind,res))
df

             id statistic parameter   p.value
tumor1   tumor1  4.322896         9 0.8889048
tumor2   tumor2  5.285714         9 0.8087245
tumor3   tumor3  2.803063         9 0.9715936
tumor4   tumor4   8.62578         9 0.4725097
tumor5   tumor5  13.22846         9 0.1525381
tumor6   tumor6  8.653768         9 0.4698283
tumor7   tumor7  7.666667         9 0.5680554
tumor8   tumor8  5.919132         9 0.7479838
tumor9   tumor9  8.051335         9 0.5289813
tumor10 tumor10  13.46875         9 0.1425173