问题标签 [model.matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5963 浏览

r - model.matrix 使用多列

我正在尝试在 model.matrix 中使用 data.frame 中的多个列。

数据框如下所示:

看起来像这样:

我想做类似的事情:

但是我不能让 model.matrix 接受多个变量:

有什么建议么?

编辑:

0 投票
1 回答
10145 浏览

r - R中用于model.matrix的data.table的行名

我有一个data.table DT,我想在model.matrix上面运行。每行都有一个字符串 ID,存储在 的ID列中DT。当我运行model.matrixDT,我的公式不包括该ID列。问题是,model.matrix由于 NA 删除了一些行。如果我在调用之前将行名设置DT为列,那么最终的模型矩阵具有行名,我就准备好了。否则,我无法弄清楚我最终得到了哪些行。我正在使用. 但是,当我尝试向 中添加新列时,我收到了关于IDmodel.matrixrownames(DT) = DT$IDDT

“检测到无效的 .internal.selfref ......在早些时候,这个 data.table 已被 R 复制。”

所以我想知道

  1. 有没有更好的方法来设置行名data.table
  2. 有没有更好的方法来解决这个问题。
0 投票
2 回答
4280 浏览

r - 创建指标变量矩阵

我想创建一个指标变量矩阵。我最初的想法是使用model.matrix,这里也建议使用:Automatically expand an R factor into a collection of 1/0 indicator variables for each factor level

但是,如果一个因子只有一个级别,model.matrix 似乎不起作用。

这是一个示例数据集,其中因子“区域”具有三个级别:

for 循环很有效,而且看起来很简单。但是,我一直在努力想出一个不涉及循环的解决方案。我可以使用上面的循环,但一直在努力摆脱它们。有没有更好的办法?

0 投票
2 回答
507 浏览

r - R中的系数变量成员

在使用正则表达式之前,我已经为此制定了一个非常冗长的解决方案,但我希望有一种更原生的方法来做到这一点。

给定一个模型,也许像

我想确定公式中哪个系数与哪个变量有关。像这样:

我已经检查过了model.matrixmodel.formula但是那些让我看到了这行代码

我深入研究了 C 代码,但我认为必须有一种更简单的方法。有没有?

为了回应 DWin 的好回答,我构建了一个复杂的示例,其中正则表达式可能会失败。这是正则表达式让我害怕的边缘情况之一。

data.frame是用变量名和值构建的,这些变量名和值很容易混淆,这种情况经常发生。

这将连续变量Bat与 的所有系数相匹配factor Batter

是的,这是一个愚蠢的例子,但很容易发生。

0 投票
2 回答
10713 浏览

r - 运行 glmnet() 的大矩阵

我在运行具有广泛数据集的 glmnet lasso 时遇到问题。我的数据有 N=50,但 p > 49000,所有因素。因此,要运行 glmnet,我必须创建一个 model.matrix,但是当我调用 model.matrix(formula, data) 时,我的内存不足,其中 formula = Class ~ 。

作为一个工作示例,我将生成一个数据集:

之后,我尝试创建一个 model.matrix 以在 glmnet 上输入。

在最后一步(X = model.matrix ...)我内存不足。我能做些什么?

0 投票
1 回答
2845 浏览

r - R在model.matrix中缺少级别

我正在尝试将具有分类变量的数据框转换为 model.matrix 但正在丢失变量级别。

这是我的代码:

有什么建议么?这是矩阵不可逆性问题吗?

0 投票
0 回答
1727 浏览

r - 当 model.matrix 行数与神经网络中的测试数据帧不同时进行预测

我最近询问了以下有关使用库requires numeric/complex matrix/vector arguments时出现的错误的问题。neuralnet这是我最初的问题:“第一次在 R 中使用神经网络:获取“需要数字/复杂矩阵/向量参数”,但不知道如何纠正“。

解决方案是使用该model.matrix函数将我的数据框中的因子转换为“虚拟”变量。结果代码如下:

因为我的源数据框充满了许多单独的NA值,所以生成的矩阵最终有 714 行,而不是原始数据框的 891 行。

这对我的训练数据来说没问题。但是,当我加载我的测试数据框并将其转换为矩阵时,我遇到了同样的问题。这次我得到了 331 个矩阵行,而我的源数据框中有 418 个行。

在我compute将模型应用于我的测试数据之后,我无法将cbind我的预测返回到我的测试数据,因为行数不同。所以,我的问题是:

有没有办法强制model.matrix输出与源数据框相同的行数,忽略大小写NA?我的模型需要能够处理NA并仍然输出预测,因为遇到至少有一个的行NA很常见。或者,告诉神经网络将NA值视为有效因素会更好吗?

这是到目前为止我一直在尝试使用的代码:

当我尝试使用rownames来自火车数据框的强制 matrix.model 矩阵进入相同的行数时,我得到以下信息:

但是,那一行 NA 是不准确的。事实上,该行中可能只有一个 NA 值,但出于某种原因,每当行中列出一个 NA 值时,矩阵会将整行转换为 NA。而不是上面的,这是我想看到的:

0 投票
2 回答
524 浏览

r - 为什么 model.matrix 这么慢?

考虑以下演示数据:

如果我用 构建矩阵mtmodel.matrix()则需要永远:

但是如果我对矩阵做同样的事情,它会非常快:

为什么有区别?是什么让model.matrix()慢速对于lm()相关功能真的很有必要?

0 投票
1 回答
87 浏览

r - 如何以特定方式制作model.matrix?

如何使用 model.matrix 生成一个看起来像这样的矩阵?

我产生了第一个矩阵

在哪里

和身份证

这是我能得到的最接近的。

0 投票
1 回答
3678 浏览

r - R:将 R 因子扩展到每个因子级别的虚拟列

我在 R 中有一个相当大的数据框,有两列。我试图从Code列(factor类型为 858 级)中找出虚拟变量。问题是当我尝试这样做时,R Studio 总是崩溃。

User列不是唯一的,这意味着可以有几行具有相同的User. 不管最终行数保持不变还是将相同的行User合并到一行中,该行有几列非空且计数为Codes。

我发现了一些适用于较小数据集的解决方案,但不适用于我的。

如果您能向我推荐一些快速且适用于此类数据的方法,那就太好了。

谢谢!