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

我尝试对两个组之间的所有变量(列)运行t-test:
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-test?并有可能将其作为一个函数?
发布于 2020-05-01 03:54:55
首先,您必须更正定义组的方式(不能在变量名上使用破折号):
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))因为这个新变量将为组外的元素生成NAs值,所以您不需要设置子集:
t.test(m_pHSL660 ~ sub, data =pairht_protein)https://stackoverflow.com/questions/61531144
复制相似问题