首页 > 解决方案 > 我应该如何解开这组 lapply/sapply/mapply

问题描述

所有,有人可以帮我弄清楚这段代码在做什么吗?R 新手,我被指派找出下面代码中的逻辑。任何提示将非常感谢!

temp 包含回归系数

    f = function(l, i, flip) t(sapply(l[!sapply(l, is.null)],
    function(x) setNames(x[, i][fields], fields) * (if (flip) sign else 1)))

    g = if (calc.tstat){
        function(...) FUN(...)} else 
        {function(...) FUN(..1)}
  
    temp = lapply(temp, 
         function(l, 
                coef = f(l, 1, T), 
                tstat = coef/f(l, 2, F)) 
                lapply(unname(split(1:nrow(coef), horzcode[1:nrow(coef)])), 
                    function(i) if (length(i)) g(coef[i, , drop = F], tstat[i, , drop = F])))

我完全迷失在下面的多层应用/应用/映射中:

    temp = lapply(1:horizon, 
        function(k) sapply(names(temp[[which.max(last)]][[1]]), 
            function(n) do.call(rbind, 
    setNames(mapply(function(i, j) if (!is.na(j)) temp[[j]][[k]][[n]][i, ][fields] 
                                    else replace(NULL, fields, NA),        
    na.fill(replace(rep(NA, length(forms)), horzcode == k, seq_len(sum(horzcode == k)))), 
        as.integer(forms), SIMPLIFY = F), 
        levels(datecode))), simplify = F))

标签: functionapplyinline

解决方案


推荐阅读