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
我是 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