在R中使用sobolSmthSpl函数时出错

时间:2018-11-10 20:40:25

标签: r

我正在尝试使用灵敏度包从我的参数和模型输出中计算sobol灵敏度指数。软件包中的sobolSmthSpl这个功能应该可以做到这一点,但我一直在收到错误消息

    Error: $ operator is invalid for atomic vectors
    In addition: Warning message:
    In parallel::mclapply(1:ncol(Y), function(i) smooth.spline(X[,       i],  :
      all scheduled cores encountered errors in user code*

我已经使变量的类与示例相同,但是无法消除错误。有没有人曾经使用过此功能或遇到过类似的问题?

这是函数的代码

    function (Y, X) 
    {
        ANS = list()
        ANS[["call"]] = match.call()
        ANS[["X"]] = X
        ANS[["Y"]] = Y
        par.names = colnames(X)
        if (is.null(colnames(X))) 
            par.names = paste0("X", 1:ncol(X))
        X = normalize(X)
        Y = Y - mean(Y)
        Y = sapply(1:ncol(X), function(i) return(Y[order(X[, i])]))
        X = sapply(1:ncol(X), function(i) return(X[order(X[, i]), 
            i]))
        SMTH = optSmooth(Y, X, c(-2, 2))
        SA.tab = t(sapply(SMTH, est.Si))
        colnames(SA.tab) = c("Si", "se", "q0.05")
        rownames(SA.tab) = par.names
        ANS[["S"]] = SA.tab
        class(ANS) = "sobolSmthSpl"
        return(ANS)
    }

0 个答案:

没有答案