R/makeListInstance.R

Defines functions makeListInstance

makeListInstance<-function(
    object
    ,targetClassName
    ,targetListClassName
    ,permittedValueClassName
    ,key_value_func
){
    if(allElementsAreOfClass(object,targetClassName)){
        return(as(object,targetListClassName))
    
    }else{ 
        if(allElementsAreOfClass(object,permittedValueClassName)){
            keys=names(object)
            l=lapply(
                keys
                ,function(key){
                    value=object[[key]]
                    key_value_func(key,value)
                }
            )
            # and then coerce to our special list tpye
            return(as(l,targetListClassName))
        }else{
            stop(
                paste(
                    'The list must contain either
                     instances of class '
                    ,targetClassName
                    ,'or must have values of class:',
                    ,permittedValueClassName
                    ,"but I got:"
                    ,object
                )
            )
        }
    }
}

Try the SoilR package in your browser

Any scripts or data that you put into this service are public.

SoilR documentation built on Oct. 13, 2023, 5:06 p.m.