Вы видите названия теста chisq:
names(chisq.test(matrix(1:4,ncol=2)))
[1] "statistic" "parameter" "p.value" "method" "data.name" "observed"
[7] "expected" "residuals" "stdres"
Вам нужны следующие значения: statisti c (chisq), параметр (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