问题标签 [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.
r - model.matrix 使用多列
我正在尝试在 model.matrix 中使用 data.frame 中的多个列。
数据框如下所示:
看起来像这样:
我想做类似的事情:
但是我不能让 model.matrix 接受多个变量:
有什么建议么?
编辑:
r - R中用于model.matrix的data.table的行名
我有一个data.table
DT
,我想在model.matrix
上面运行。每行都有一个字符串 ID,存储在 的ID
列中DT
。当我运行model.matrix
时DT
,我的公式不包括该ID
列。问题是,model.matrix
由于 NA 删除了一些行。如果我在调用之前将行名设置DT
为列,那么最终的模型矩阵具有行名,我就准备好了。否则,我无法弄清楚我最终得到了哪些行。我正在使用. 但是,当我尝试向 中添加新列时,我收到了关于ID
model.matrix
rownames(DT) = DT$ID
DT
“检测到无效的 .internal.selfref ......在早些时候,这个 data.table 已被 R 复制。”
所以我想知道
- 有没有更好的方法来设置行名
data.table
- 有没有更好的方法来解决这个问题。
r - 创建指标变量矩阵
我想创建一个指标变量矩阵。我最初的想法是使用model.matrix,这里也建议使用:Automatically expand an R factor into a collection of 1/0 indicator variables for each factor level
但是,如果一个因子只有一个级别,model.matrix 似乎不起作用。
这是一个示例数据集,其中因子“区域”具有三个级别:
for 循环很有效,而且看起来很简单。但是,我一直在努力想出一个不涉及循环的解决方案。我可以使用上面的循环,但一直在努力摆脱它们。有没有更好的办法?
r - R中的系数变量成员
在使用正则表达式之前,我已经为此制定了一个非常冗长的解决方案,但我希望有一种更原生的方法来做到这一点。
给定一个模型,也许像
我想确定公式中哪个系数与哪个变量有关。像这样:
我已经检查过了model.matrix
,model.formula
但是那些让我看到了这行代码
我深入研究了 C 代码,但我认为必须有一种更简单的方法。有没有?
为了回应 DWin 的好回答,我构建了一个复杂的示例,其中正则表达式可能会失败。这是正则表达式让我害怕的边缘情况之一。
它data.frame
是用变量名和值构建的,这些变量名和值很容易混淆,这种情况经常发生。
这将连续变量Bat
与 的所有系数相匹配factor
Batter
。
是的,这是一个愚蠢的例子,但很容易发生。
r - 运行 glmnet() 的大矩阵
我在运行具有广泛数据集的 glmnet lasso 时遇到问题。我的数据有 N=50,但 p > 49000,所有因素。因此,要运行 glmnet,我必须创建一个 model.matrix,但是当我调用 model.matrix(formula, data) 时,我的内存不足,其中 formula = Class ~ 。
作为一个工作示例,我将生成一个数据集:
之后,我尝试创建一个 model.matrix 以在 glmnet 上输入。
在最后一步(X = model.matrix ...)我内存不足。我能做些什么?
r - R在model.matrix中缺少级别
我正在尝试将具有分类变量的数据框转换为 model.matrix 但正在丢失变量级别。
这是我的代码:
有什么建议么?这是矩阵不可逆性问题吗?
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。而不是上面的,这是我想看到的:
r - 为什么 model.matrix 这么慢?
考虑以下演示数据:
如果我用 构建矩阵mt
,model.matrix()
则需要永远:
但是如果我对矩阵做同样的事情,它会非常快:
为什么有区别?是什么让model.matrix()
慢速对于lm()
相关功能真的很有必要?
r - 如何以特定方式制作model.matrix?
如何使用 model.matrix 生成一个看起来像这样的矩阵?
我产生了第一个矩阵
在哪里
和身份证
这是我能得到的最接近的。
r - R:将 R 因子扩展到每个因子级别的虚拟列
我在 R 中有一个相当大的数据框,有两列。我试图从Code
列(factor
类型为 858 级)中找出虚拟变量。问题是当我尝试这样做时,R Studio 总是崩溃。
该User
列不是唯一的,这意味着可以有几行具有相同的User
. 不管最终行数保持不变还是将相同的行User
合并到一行中,该行有几列非空且计数为Code
s。
我发现了一些适用于较小数据集的解决方案,但不适用于我的。
尝试使用
model.matrix
,但 R Studio 只是崩溃尝试
for
使用 循环ifelse
,但代码运行了 4 小时,然后我注意到 R Studio 崩溃了。在这里找到从分类变量创建新的虚拟变量列
如果您能向我推荐一些快速且适用于此类数据的方法,那就太好了。
谢谢!