r - 将输入列表优化为 R 中的变量或函数
问题描述
我正在尝试自动化我的 R 脚本的这一部分,但我不知道如何。本质上,我有这个代码:
currentmatrix <- datas[,,i]
data <- as.data.frame(currentmatrix)
#mod #
colnames(data) <- c("in1","in2","in3","in4","in5","in6", "in7", "in8", "in9", "in10", "out") #change depending on number of inputs and add to nnet training
#mod #
nnet <- neuralnet(out~in1+in2+in3+in4+in5+in6+in7+in8+in9+in10, data, hidden=hidden, threshold = threshold, stepmax = 10^7,err.fct = "ce",linear.output = F,likelihood = T)
现在,在我有"in1","in2"
等的地方,我希望它是一个变量,这样我就可以简单地引用neuralnet(var,data,hidden=hidden,...)
,而不是每次我想更改输入数量时都将输入输入到函数中。例如,我想有一个创建名为 的字符串的函数f
,然后我可以编写
和或类似的东西。f(x)
x
in[x]
colnames(data) <- c(f(x))
nnet <- neuralnet(out~f_sum,...)
有没有办法做到这一点?谢谢!
解决方案
您可以使用reformulate
which 返回一个公式对象。
formula <- reformulate(paste0('in', 1:10), 'out')
formula
#out ~ in1 + in2 + in3 + in4 + in5 + in6 + in7 + in8 + in9 + in10
您还可以使用列名来生成公式。
formula <- reformulate(names(data)[1:10], 'out')
这可以在neuralnet
函数中使用。
nnet <- neuralnet(formula, data, hidden=hidden, threshold = threshold,
stepmax = 10^7,err.fct = "ce",linear.output = F,likelihood = T)
推荐阅读
- magento2 - 详细 Magento2 事件参考
- python-3.x - 如何在python中从具有非重叠补丁大小32 X 32的图像中提取24维颜色直方图特征向量
- javascript - Nestjs 使用 axios
- angular - 通过孩子向孙子注入祖先的前向参考
- google-app-engine - 在 AppEngine 开发服务器上导入 matplotlib 失败
- azure-devops - 构建在管道中更改的功能分支
- html - 如何填充边距的整个背景颜色?
- https - 服务器和客户端在客户机器上运行,我应该使用 HTTPS,如何使用?
- amazon-web-services - 忽略自动生成的 AWS Amplify 文件
- swift - 为 ARKit(不是 QLPreview)材质属性加载 USDZ