我刚接触R,需要使用单核苷酸多态性(SNP)列表(也是离散值0或1)对表型列表进行逻辑回归,每个表型的离散值为0或1。
我已经用这两个列表做了一个矩阵,现在我想做一个单变量分析,涵盖两组中每个实体的每一个组合
phenotypes <- colnames(regressioninput)[c(2:32, 47:56)]
SNPs01 <- colnames(regressioninput)[c(74:176)]
var1 = rep(phenotypes, length(SNPs01))
var1 = var1[order(var1)]
var2 = rep(SNPs01, length(phenotypes))
df = data.frame(a = var1, b = var2)
# first attempt at analysis
glm(phenotypes ~ SNPs01, family = binomial(link = "logit"), data = regressioninput)
#second attempt
glm.formula <- mapply(var1, function(x) {paste(x, "~ var2 ")})
listglmOut<-lapply(glm.formula, function(f) glm(as.formula(f), family = binomial(link='logit'), data = df ))错误消息显示变量长度不同
发布于 2019-09-10 04:52:18
同样,如果没有数据样本,很难理解你想要什么,所以我只能猜测这样的东西会起作用:
set.seed(777)
dat <- matrix(sample(c(0,1), 100^2, replace = TRUE), 100, 100)
dat <- as.data.frame(dat)
gr1 <- names(dat)[1:20]
gr2 <- names(dat)[21:ncol(dat)]
res <- vector(mode = "list", length = 20*80)
for (i in seq_along(gr1)){
for (j in seq_along(gr2)){
ind <- 80*(i-1) + j
res[[ind]] <- summary(glm(as.formula(paste0(gr1[i],'~',gr2[j])),
family = binomial(link = "logit"), data = dat))
}
}https://stackoverflow.com/questions/57860679
复制相似问题