0

在 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 检验进行比较,回答“女性的年龄与男性的年龄有显着差异吗?”这个问题。

从理论上讲,要运行测试,我认为我的数据应该采用以下形式:

male  female
39    45
83    61
...

我确信有一种方法可以直接在原始表上运行测试,或者有一种简单的方法可以将我的数据转换为这种形式......

那么,我应该如何进行呢?

4

2 回答 2

2

如果df是你的数据集,你可以做

t.test(age ~ gender, data=df, alternative='two.sided')

并且无需重新组织数据。

于 2017-06-07T15:21:28.433 回答
1

我会选择漂亮的data.table:假设dtdata.tabledt<-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
于 2017-06-07T15:11:18.483 回答