我想用 R 中的所有算术函数对变量进行排列
例子:
testvector <- c("cat", "dog")
# expected outcome
c("cat","dog","cat+dog","cat-dog","dog-cat","cat*dog","cat/dog","dog/cat")
我有大约 10 个变量,所以这很难手工完成。我在 python 中找到了一个响应,也许可以做同样的事情,但我必须在 R 中这样做。
我想用这种手动机器学习方法来找到最佳的变量组合来分离数据集。
如果 ML 包可以为我做到这一点,我也很乐意尝试。
我也想在线性模型中使用这个向量的结果,但也许有更直接的方法。
还有一件事,我还想 - 如果可能的话 - 包括括号以对变量进行分组
# incomplete example
testvector <- c("cat","dog","bird")
# expected outcome looks like
c("(cat-dog)/bird","(bird+cat)/dog","(dog+bird)*cat")
如果这不是用于字符向量,而是用于数字,我会预先用排列预先计算必要的变量,然后使用结果进行建模。
我们可以使用
expand.grid
获得组合,然后 paste
行
c(testvector, do.call(paste, c(subset(expand.grid(testvector,
c("+", "-", "*", "/"), testvector), Var1 != Var3), sep = "")))
-输出
[1] "cat" "dog" "dog+cat" "dog-cat" "dog*cat" "dog/cat" "cat+dog" "cat-dog" "cat*dog" "cat/dog"