首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对矩阵进行逻辑回归分析

如何对矩阵进行逻辑回归分析
EN

Stack Overflow用户
提问于 2019-09-10 04:17:14
回答 1查看 55关注 0票数 0

我刚接触R,需要使用单核苷酸多态性(SNP)列表(也是离散值0或1)对表型列表进行逻辑回归,每个表型的离散值为0或1。

我已经用这两个列表做了一个矩阵,现在我想做一个单变量分析,涵盖两组中每个实体的每一个组合

代码语言:javascript
复制
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 ))

错误消息显示变量长度不同

EN

回答 1

Stack Overflow用户

发布于 2019-09-10 04:52:18

同样,如果没有数据样本,很难理解你想要什么,所以我只能猜测这样的东西会起作用:

代码语言:javascript
复制
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))
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57860679

复制
相关文章

相似问题

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