【问题标题】:How to load a csv file into R as a factor for use with glmnet and logistic regression如何将 csv 文件加载到 R 中作为与 glmnet 和逻辑回归一起使用的因素
【发布时间】:2019-12-17 14:19:17
【问题描述】:

我有一个名为“y”的 csv 文件(单列,数值),由零和一个组成,其中值为 1 的行表示逻辑回归的目标变量,另一个名为“x”的文件具有相同的行数和数字预测值的列。如何加载这些以便我可以使用 cv.glmnet,即

x <- read.csv('x',header=FALSE,sep=",")
y <- read.csv('y',header=FALSE )

报错了

Error in y %*% rep(1, nc) : 
requires numeric/complex matrix/vector arguments

当我打电话时

cvfit = cv.glmnet(x, y, family = "binomial")

我知道“y”应该作为“因素”加载,但我该怎么做呢?我的在线搜索发现了各种让我感到困惑的方法。为 glmnet 加载这些数据的简单单行程序是什么?

【问题讨论】:

  • glmnet 期望 y 是一个向量或两列矩阵。 read.csv 返回一个数据框。您可以unlist(y) 将单列数据框转换为向量,或者使用y[[1]] 显式拉出第一列作为向量。

标签: r csv glmnet


【解决方案1】:

cv.glmnet 要求以矢量或矩阵格式提供数据。您可以使用以下代码

xmat = as.matrix(x)

yvec = as.vector(y)

然后使用

cvfit = cv.glmnet(xmat, yvec, family = "binomial")

如果你能提供dput()格式的数据,我可以试试。

【讨论】:

    猜你喜欢
    • 2019-10-14
    • 2015-09-06
    • 2018-07-19
    • 1970-01-01
    • 2017-03-24
    • 2020-11-05
    • 2017-10-06
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多