所有变量之间具有 n 向交互的模型矩阵
Model matrix with n-wise interactions between all variables
我正在使用以下代码在数据集中的变量之间创建 n 阶交互。对于二阶交互的情况,我使用:
train_X <- model.matrix(~.^2, train_data %>% select(-target))
虽然工作正常,但是,当我尝试将 n 阶项模块化以按以下方式将此代码嵌入函数中时,它不起作用:
n <- 2
train_X <- model.matrix(~.^n, train_data %>% select(-target))
特别是returns以下错误:
Error in terms.formula(object, data = data) : invalid power in formula
我也试过指定n = 2L
,但是returns同样的错误。
尝试将公式构建为字符串(使用 paste()
、glue::glue()
、sprintf()
或任何您喜欢的)并转换为公式(使用 as.formula()
或reformulate()
).
train_X <- model.matrix(
as.formula(sprintf("~.^%d", n)),
train_data %>% select(-target))
我正在使用以下代码在数据集中的变量之间创建 n 阶交互。对于二阶交互的情况,我使用:
train_X <- model.matrix(~.^2, train_data %>% select(-target))
虽然工作正常,但是,当我尝试将 n 阶项模块化以按以下方式将此代码嵌入函数中时,它不起作用:
n <- 2
train_X <- model.matrix(~.^n, train_data %>% select(-target))
特别是returns以下错误:
Error in terms.formula(object, data = data) : invalid power in formula
我也试过指定n = 2L
,但是returns同样的错误。
尝试将公式构建为字符串(使用 paste()
、glue::glue()
、sprintf()
或任何您喜欢的)并转换为公式(使用 as.formula()
或reformulate()
).
train_X <- model.matrix(
as.formula(sprintf("~.^%d", n)),
train_data %>% select(-target))