首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对R中行的子集运行t-test

如何对R中行的子集运行t-test
EN

Stack Overflow用户
提问于 2020-05-01 03:20:59
回答 1查看 164关注 0票数 0

下面是我的数据的一部分(pairht_protein)

我尝试对两个组之间的所有变量(列)运行t-test:

代码语言:javascript
复制
Resistant_group <- c(PAIR-01, PAIR-12, PAIR-09)
Sensitive_group <- c(PAIR-07, PAIR-02, PAIR-05)

在我创建一个函数之前,我试着选择一个变量并尝试:

代码语言:javascript
复制
t.test(m_pHSL660 ~ Subject, data = subset(pairht_protein, Subject %in% c("Resistant_group", "Sensitive_group")))

但是它给了我一个错误:'grouping factor must have exactly 2 levels'

有没有办法在这些组之间运行t-test?并有可能将其作为一个函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 03:54:55

首先,您必须更正定义组的方式(不能在变量名上使用破折号):

代码语言:javascript
复制
Resistant_group <- c('PAIR-01', 'PAIR-12', 'PAIR-09')
Sensitive_group <- c('PAIR-07','PAIR-02','PAIR-05')

然后,使用dplyr包创建另一个只有两个级别的因子变量:

代码语言:javascript
复制
library(dplyr)

# assuming pairht_protein is your dataset name

pairht_protein <- pairht_protein %>% mutate(sub = case_when( subject %in% Resistant_group ~1,
                                  subject %in% Sensitive_group ~2),
                          sub = as.factor(sub))

因为这个新变量将为组外的元素生成NAs值,所以您不需要设置子集:

代码语言:javascript
复制
t.test(m_pHSL660 ~ sub, data =pairht_protein)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61531144

复制
相关文章

相似问题

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