首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:如何在两组t-test之间运行?

R:如何在两组t-test之间运行?
EN

Stack Overflow用户
提问于 2019-08-25 09:46:55
回答 1查看 65关注 0票数 0

当拆分同一数据集中的组时,我尝试在R中运行一系列t-test。我已经能够轻松地使用group_by对数据进行分组,并选择必要的变量。我还了解如何使用t.test函数轻松运行t-test,但这些并不能解决组的问题。

数据集由一组参与者组成,他们在两种不同的条件下完成干预,并具有不同的负载程度(例如,见下文)。

代码语言:javascript
复制
Participant Condition   Load    var.1   var.2   var.3
P01         a           1       834.99  0.383   0.342
P01         a           2       917.22  0.342   0.301
P01         a           3       995.24  0.305   0.263
P01         b           1       1074.22 0.276   0.235
P01         b           2       1156.46 0.247   0.208
P01         b           3       871.41  0.307   0.277
P02         a           1       945.10  0.290   0.260
P02         a           2       1010.39 0.272   0.239
P02         a           3       1096.92 0.265   0.234
P02         b           1       1171.91 0.227   0.195
P02         b           2       664.00  0.260   0.191
P02         b           3       711.92  0.238   0.175
P03         a           1       782.02  0.211   0.154
P03         a           2       858.70  0.174   0.134
P03         a           3       915.21  0.154   0.114
P03         b           1       668.22  0.178   0.207
P03         b           2       723.92  0.243   0.186
P03         b           3       788.31  0.209   0.157  

我使用以下命令拆分组:

代码语言:javascript
复制
    grouped.my.df <- my.df %>%
      group_by(Condition, Load) %>%
      select(-var.4, -var.5,-var.6)

然后,我尝试运行t-test,但不确定如何从tbl中创建的组运行它。是更好地创建每个组的向量(如果是这样,如何创建),还是可以直接对创建的组运行t-test?(下面的代码是我想要做的一个例子,我知道它实际上并不起作用)。

代码语言:javascript
复制
t.test(group.P01.a.1$var.1, group.P01.b.1$var1)

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2019-08-25 10:24:27

您未正确应用group_by。它并不能像你现在使用的那样做任何事情。

您可以使用filter选择数据集的一个子集,例如:

代码语言:javascript
复制
grouped.a.1 = my.df %>% filter(Condition == "a", Load == 1)
grouped.b.1 = my.df %>% filter(Condition == "b", Load == 1)

然后在t.test中使用它

代码语言:javascript
复制
t.test(grouped.a.1$var.1, grouped.b.1$var.1)

或者,因为如果有两个组,t.test也接受公式参数:

代码语言:javascript
复制
t.test(var.1 ~ Condition, my.df %>% filter(Load == 1))

两者都针对Load == 1b条件测试a条件。我假设你的t.test(group.P01.a.1$var.1, group.P01.b.1$var1)产品线中的参与者的歧视是无意的。

我想我误解了你的问题,你想要的可能是这样的

代码语言:javascript
复制
my.df %>%
    select(-Participant) %>%
    group_by(Load) %>%
    summarize_at(
        vars(-group_cols(), -Condition),
        list(p.value = ~ t.test(. ~ Condition)$p.value) )

这将为您提供Load和所有变量的所有值在两个条件之间的所有两组t检验的p值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57642683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档