如何 运行 对 R 中的行子集进行 t 检验
How to run t-test with subset of rows in R
以下是我的部分数据(pairht_protein)
我正在尝试 运行 对两组之间的所有变量(列)进行 t 检验,它们是:
Resistant_group <- c(PAIR-01, PAIR-12, PAIR-09)
Sensitive_group <- c(PAIR-07, PAIR-02, PAIR-05)
在创建函数之前,我厌倦了选择一个变量并尝试了:
t.test(m_pHSL660 ~ Subject, data = subset(pairht_protein, Subject %in% c("Resistant_group", "Sensitive_group")))
但是它给了我一个错误:'grouping factor must have exactly 2 levels'
有没有办法在这些组之间进行 运行 t 检验?并可能将其作为一个函数?
首先,您必须更正定义组的方式(不能在变量名称上使用破折号):
Resistant_group <- c('PAIR-01', 'PAIR-12', 'PAIR-09')
Sensitive_group <- c('PAIR-07','PAIR-02','PAIR-05')
然后,使用 dplyr
包创建另一个只有两个水平的因子变量:
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))
因为这个新变量将为您组外的元素生成 NA 值,所以您不需要子集化:
t.test(m_pHSL660 ~ sub, data =pairht_protein)
以下是我的部分数据(pairht_protein)
我正在尝试 运行 对两组之间的所有变量(列)进行 t 检验,它们是:
Resistant_group <- c(PAIR-01, PAIR-12, PAIR-09)
Sensitive_group <- c(PAIR-07, PAIR-02, PAIR-05)
在创建函数之前,我厌倦了选择一个变量并尝试了:
t.test(m_pHSL660 ~ Subject, data = subset(pairht_protein, Subject %in% c("Resistant_group", "Sensitive_group")))
但是它给了我一个错误:'grouping factor must have exactly 2 levels'
有没有办法在这些组之间进行 运行 t 检验?并可能将其作为一个函数?
首先,您必须更正定义组的方式(不能在变量名称上使用破折号):
Resistant_group <- c('PAIR-01', 'PAIR-12', 'PAIR-09')
Sensitive_group <- c('PAIR-07','PAIR-02','PAIR-05')
然后,使用 dplyr
包创建另一个只有两个水平的因子变量:
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))
因为这个新变量将为您组外的元素生成 NA 值,所以您不需要子集化:
t.test(m_pHSL660 ~ sub, data =pairht_protein)