You are here

diag()

1 post / 0 new
tbates's picture
Offline
Joined: 07/31/2009 - 14:25
diag()

I'd really like diag implemented in Openmx - just so that the same code works inside and outside of OpenMx and to ease the learning transition. But, If we aren’t going to support the standard r implementation of diag(), can we implement

diag <- function(x=1, nrow, ncol) {
    message("We’re a bit worried that diag can be ambiguous, so we’ve broken it into multiple new functions...")
    # then either say
    stop("You need to choose among list up our replacement functions to handle everything that diag() does...")
    # or, more helpfully, tell people how to implement the diag functionality that they have requested
    if(is.matrix(x)){
        message("You input x as a matrix: to get the diagonal of a matrix call WHATEVER WE HAVE DONE")       
    } else if(x==1 & !missing(nrow))){
        message("you asked for an nrow identity amtrix: please use WHATEVER WE HAVE DONE...")        
    } else if(length(x) == 1 & missing(nrow) & missing(ncol))){
        message("you asked for an ", x, " row Identity matrix: please use WHATEVER WE HAVE DONE...")      
    } else if(length(x) > 1) {
        message("you asked for an ", x, " row Identity matrix: please use WHATEVER WE HAVE DONE...")
    } if !missing(nrow) | ! missing(ncol))){
        message("you asked for an ", x, " row Identity matrix: please use WHATEVER WE HAVE DONE...")      
    }
}
 
x = matrix(1:9,3)
diag(x)