ループの反復ごとに、関数呼び出しから返された結果を格納する必要があります。
for (i in 1:x)
{
datax <- trainingdata[[i]]
levels(datax$label) <- c(-1, 1)
train_x<-datax[, -1]
train_x<-data.matrix(train_x)
trainy<-datax[, 1]
s_x<-svm.fs(train_x, y=trainy, fs.method="scad",
cross.outer=0, grid.search="discrete",
lambda1.set=lambda1.scad, parms.coding="none",
show="none", maxIter=1000, inner.val.method="cv",
cross.inner=5, seed=seed, verbose=FALSE)
# Store the result s_x
}
s_x は、名前 (ベクトル「names」に既に存在する) とともに格納する必要があります。
私は次のことを試しました:
s_x_results <- data.frame(x=names, y=data.frame(length(trainingdata)))
for (i in 1:x)
{
datax <- trainingdata[[i]]
levels(datax$label) <- c(-1, 1)
train_x<-datax[, -1]
train_x<-data.matrix(train_x)
trainy<-datax[, 1]
s_x<-svm.fs(train_x, y=trainy, fs.method="scad",
cross.outer=0, grid.search="discrete",
lambda1.set=lambda1.scad, parms.coding="none",
show="none", maxIter=1000, inner.val.method="cv",
cross.inner=5, seed=seed, verbose=FALSE)
s_x_results[i]$y <- s_x
}
しかし、エラーメッセージが表示されます:
Error in `$<-.data.frame`(`*tmp*`, "scad.fix", value = list(classes = c(1L, :
replacement has 11 rows, data has 91
最終的なオブジェクト s_x_results は、将来の対応のために何らかのファイルに保存されます。