r - 所有变量之间具有 n 向交互作用的模型矩阵

标签 r model.matrix

我使用以下代码在数据集中的变量之间创建 n 阶交互。对于二阶交互的情况,我使用:

train_X <- model.matrix(~.^2, train_data %>% select(-target))

这工作正常,但是,当我尝试将 n 阶项模块化以通过以下方式将此代码嵌入到函数中时,它不起作用:

n <- 2
train_X <- model.matrix(~.^n, train_data %>% select(-target))

特别是,它返回以下错误:

Error in terms.formula(object, data = data) : invalid power in formula

我也尝试指定n = 2L,但它返回相同的错误。

最佳答案

尝试将公式构建为字符串(使用 paste()glue::glue()sprintf() 或其他方式您喜欢)并转换为公式(使用 as.formula()reformulate())。

train_X <- model.matrix(
   as.formula(sprintf("~.^%d", n)), 
   train_data %>% select(-target))

关于r - 所有变量之间具有 n 向交互作用的模型矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71755230/

相关文章:

r - Predict 和 model.matrix 在因子变量的水平内给出不同的预测平均值

r - .R 中的第一个函数

r - 使用 ggplot 绘制具有置信区间的均值

r - 是否可以将附加参数传递给scales包的trans_new?

r - 如何在 Shiny 中编辑 .yml 文件

r - 列出数据集中存在的列的值以及另一列的所有值

r - model.frame.default(object, data, xlev = xlev) 错误 : object is not a matrix

r - 加速此循环以使用 data.table 创建虚拟列并在 R 中设置

R model.matrix 在所有列中使用相同的因子集

model.matrix 中的 R 缺失级别