我想 运行 进行 t 检验,我应该如何组织我的数据才能这样做?
I want to run a t-test, how should I organise my data to do so?
在 R 中,我想 运行 统计测试来比较两个类别之间的平均值,但我不知道如何组织我的数据。
模拟示例
我的数据组织如下:
structure(list(age = c(39, 45, 83, 68, 48, 52, 66, 50, 61, 67), gender =
structure(c(2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L), .Label = c("female",
"male"), class = "factor")), .Names = c("age", "gender"), row.names = c(NA,
10L), class = "data.frame")
我想做的是将每个性别的平均值与 Welch t 检验进行比较,回答问题 "do women's ages are significantly different from men's ages?"。
理论上,为了运行测试,我想我的数据应该是这样的形式:
male female
39 45
83 61
...
我确定有一种方法可以 运行 直接在原始 table 上进行测试,或者有一种简单的方法可以将我的数据转换成这种形式...
那么,我该如何进行呢?
我会选择漂亮的data.table
:
假设 dt
是 data.table
(dt<-data.table(dataBase)
,即):
library(stats)
library(data.table)
dt[,t.test(age),by=gender]
导致:
gender statistic parameter p.value conf.int estimate null.value alternative method data.name
1: male 11.73781 7 7.373447e-06 47.21406 59.125 0 two.sided One Sample t-test age
2: male 11.73781 7 7.373447e-06 71.03594 59.125 0 two.sided One Sample t-test age
3: female 6.62500 1 9.537357e-02 -48.64964 53.000 0 two.sided One Sample t-test age
4: female 6.62500 1 9.537357e-02 154.64964 53.000 0 two.sided One Sample t-test age
如果df
是你的数据集,你可以做
t.test(age ~ gender, data=df, alternative='two.sided')
而且不需要重新组织数据。
在 R 中,我想 运行 统计测试来比较两个类别之间的平均值,但我不知道如何组织我的数据。
模拟示例
我的数据组织如下:
structure(list(age = c(39, 45, 83, 68, 48, 52, 66, 50, 61, 67), gender =
structure(c(2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L), .Label = c("female",
"male"), class = "factor")), .Names = c("age", "gender"), row.names = c(NA,
10L), class = "data.frame")
我想做的是将每个性别的平均值与 Welch t 检验进行比较,回答问题 "do women's ages are significantly different from men's ages?"。
理论上,为了运行测试,我想我的数据应该是这样的形式:
male female
39 45
83 61
...
我确定有一种方法可以 运行 直接在原始 table 上进行测试,或者有一种简单的方法可以将我的数据转换成这种形式...
那么,我该如何进行呢?
我会选择漂亮的data.table
:
假设 dt
是 data.table
(dt<-data.table(dataBase)
,即):
library(stats)
library(data.table)
dt[,t.test(age),by=gender]
导致:
gender statistic parameter p.value conf.int estimate null.value alternative method data.name
1: male 11.73781 7 7.373447e-06 47.21406 59.125 0 two.sided One Sample t-test age
2: male 11.73781 7 7.373447e-06 71.03594 59.125 0 two.sided One Sample t-test age
3: female 6.62500 1 9.537357e-02 -48.64964 53.000 0 two.sided One Sample t-test age
4: female 6.62500 1 9.537357e-02 154.64964 53.000 0 two.sided One Sample t-test age
如果df
是你的数据集,你可以做
t.test(age ~ gender, data=df, alternative='two.sided')
而且不需要重新组织数据。