rcc with p=1 or q=1
Issue #57
resolved
When using the function rcc
with either X or Y containing a single column, the code runs fine. However, when we want to perform cross-validation using tune.rcc
, we get the following error (here, X has a single column):
Error: 'X' must be a numeric matrix.
The traceback()
is as follows:
6: stop("'X' must be a numeric matrix.", call. = FALSE)
5: rcc(X[-omit, ], Y[-omit, ], 1, lambda1, lambda2, method = "ridge")
4: Mfold(X, Y, lambda[1], lambda[2], folds, M)
3: FUN(newX[, i], ...)
2: apply(grid, 1, function(lambda) {
Mfold(X, Y, lambda[1], lambda[2], folds, M)
})
1: tune.rcc(X_mix, Y, grid1 = 0, grid2 = grid, validation = "Mfold",
M = 10)
The fix is therefore very straightforward: we need to replace
rcc(X[-omit, ], Y[-omit, ], 1, lambda1, lambda2, method = "ridge")
with
rcc(X[-omit, ,drop=FALSE], Y[-omit, ,drop=FALSE], 1, lambda1, lambda2, method = "ridge")
and similarly every time a subset of the rows is selected.
Comments (3)
-
reporter -
Hi Maxime, thanks for noticing this issue. It has been fixed for the next release!
Thanks again
-
- changed status to resolved
- Log in to comment
Actually I just tried it out, and the change I explicitely mentioned above is sufficient in solving the issue (i.e. disregard the sentence "and similarly every time a subset of the rows is selected.").