我是R的新手,需要使用单核苷酸多态性(SNP)列表作为预测变量(也包括0或1的离散值)对每个具有离散0或1值的表型进行逻辑回归。 br /> 我已经使用两个列表制作了一个矩阵,现在希望做一个单变量分析,涵盖两组中每个实体的每种组合
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 ))
错误消息读取的可变长度不同
答案 0 :(得分:0)
同样,如果没有数据样本就很难理解您想要什么,所以我只能猜测这样的事情会起作用:
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))
}
}