r - 通过连续变量预测分类变量
问题描述
我正在进行逻辑回归分析,以通过多个连续变量预测分类变量(性别)。但是,我遇到了一些错误,真的需要有人帮助我。
这里我放了模拟数据和代码。
library(tidyverse)
library(broom)
library(purrr)
data <- data.frame(cat = rep(c("A", "B", "C", "D"), each = 20),
shar = rep(c("fr", "bs"), each = 20),
sex = rep(c("f", "m"), each = 20),
bmi = runif(20, min = 0, max = 30),
fbg = runif(20, min = 70, max = 140),
AB = runif(20, min = 0, max = 1),
Ac = runif(20, min = 0, max = 1),
Ad = runif(20, min = 0, max = 3),
Ae = runif(20, min = 0, max = 4),
Af = runif(20, min = 2, max = 4),
Ba = runif(20, min = 2, max = 10),
Bb = runif(20, min = 10, max = 40),
Bc = runif(20, min = 5, max = 50),
BD = runif(20, min = 0.5, max = 1),
BF = runif(20, min = 5, max = 10),
Ca = runif(20, min = 2, max = 10),
Cb = runif(20, min = 10, max = 40),
Cc = runif(20, min = 5, max = 50),
CD = runif(20, min = 0.5, max = 1),
CF = runif(20, min = 5, max = 10))
data1 <- data %>%
gather(Fac, value, -cat:-sex) %>%
split(.$Fac) %>%
map(~glm(sex ~ value,family = binomial(link = "logit"), data =.) %>%
tidy(.) %>%
select(estimate, std.error,statistic,p.value) %>%
slice(2)) %>%
bind_rows(.id = "variables")
这是错误
eval(family$initialize) 中的错误:y 值必须为 0 <= y <= 1。
然后,我修改了代码,但仍然出现错误
data$gendr <- ifelse(data$sex =="m",1L,0L)
data1 <- data %>%
gather(Fac, value, -cat:-sex) %>%
split(.$Fac) %>%
map(~glm(gendr ~ value,family = binomial(link = "logit"), data =.) %>%
tidy(.) %>%
select(estimate, std.error,statistic,p.value) %>%
slice(2)) %>% ## Extracting regression of genes
bind_rows(.id = "varaibles")
错误是
eval 中的错误(predvars、data、env):找不到对象“gendr”
谢谢!
解决方案
推荐阅读
- c - pthread void 指针转换
- javascript - 如何使背景中的图片随着主滑块的变化而变化?
- powershell - PowerShell 过滤器、Where-Object、Get-ChildItem
- lua - 循环矩阵
- javascript - 如何在 setTimeout() 完成运行之前阻止其他代码运行?
- email - 使用具有不同名称的相同“发件人”电子邮件地址
- python-3.x - 在每个while循环中添加更多变量以产生结果
- c# - 将本地计算机上的 MDF 文件同步到 C# 中项目的 Web 服务器
- sql - 查询连接地址
- node.js - 使用 Let's Encrypt SSL 证书的 ExpressJS 节点应用程序中的握手失败