【发布时间】:2022-01-21 02:16:34
【问题描述】:
我对两个数据框进行了 t 检验,并将结果存储在两个单独的变量中。他们原来是列表。现在,我想制作一个包含 t 分数和 p 值的数据框,但我不知道该怎么做。我猜这些列表是 s3 类的。代码。
AML_ttest <- apply(aml_df,1,t.test)
nrml_ttest <- apply(nrml_df,1,t.test)
运行 AML_ttest[[9]] 会得到以下结果。
One Sample t-test
data: newX[, i]
t = 25.994, df = 25, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
6.612063 7.749997
sample estimates:
mean of x
7.18103
如何从每个列表元素中获取 t 和 p 值?并制作一个新的数据框?
谢谢。
---更新---
我尝试了以下代码。
# AML
AML_ttest <- apply(aml_df,1,t.test)
AML_ttest = do.call(rbind,AML_ttest)
res_AML_ttest <- AML_ttest[,c("statistic","p.value")]
# Normal
nrml_ttest <- apply(nrml_df,1,t.test)
nrml_ttest = do.call(rbind,nrml_ttest)
res_nrml_ttest <- nrml_ttest[,c("statistic","p.value")]
# Make df
df_ttest <- data.frame(res_AML_ttest, res_nrml_ttest)
df_ttest
# Output
statistic p.value statistic.1 p.value.1
1 56.71269 6.171562e-28 144.5161 1.569932e-52
2 75.79649 4.559861e-31 74.87025 5.317292e-42
3 17.68306 1.207297e-15 15.15478 1.891711e-17
4 108.4904 5.984139e-35 168.8557 4.993433e-55
5 152.8165 1.156183e-38 192.4672 3.959361e-57
6 63.21714 4.163004e-29 90.42468 5.112986e-45
这种方法好吗?我可以走了吗?
【问题讨论】:
-
这显然有效,所以是的,你很高兴。 :-)