0

我有两个 R 对象,如下所示。

矩阵“datamatrix” - 200 行和 494 列:这些是我的 x 变量

数据框 Y. Y$V1 是我的 Y 变量。我已将 V1 列转换为我正在构建分类模型的因素。

我想建立一个神经网络,我在命令下运行。

model <- train(Y$V1 ~ datamatrix, method='nnet', linout=TRUE, trace = FALSE,
               #Grid of tuning parameters to try:
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1))) 

我有一个错误 -" argument "data" is missing, with no default"

有没有一种方法可以让插入符号包了解我的 X 变量在一个 R 对象中,而 Y 变量在另一个对象中?我不想合并两个数据对象然后写一个公式,因为公式会太长

Y~x1+x2+x3.................x199+x200....x493+x494
4

1 回答 1

3

通过向调用添加参数来解决该argument "data" is missing错误。我会这样做的方式是这样的:data = datamatrixtrain

datafr <- as.data.frame(datamatrix)

# V1 is the first column name if dimnames aren't specified
datafr$V1 <- as.factor(datafr$V1)

model <- train(V1 ~ ., data = datafr, method='nnet', 
               linout=TRUE, trace = FALSE,
               tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1))) 

现在您不必单独拉出响应变量。

.标识符允许包含来自的所有变量(有关详细信息,datafr请参见此处)。

于 2015-04-16T17:16:38.547 回答