a | b/soft.shrink.R | ||
---|---|---|---|
1 | soft.shrink <- |
||
2 | function (delta, threshold) |
||
3 | { |
||
4 | dif <- abs(delta) - threshold |
||
5 | delta <- sign(delta) * dif * (dif > 0) |
||
6 | nonzero <- sum(drop((dif > 0) %*% rep(1, ncol(delta))) > 0) |
||
7 | attr(delta, "nonzero") <- nonzero |
||
8 | delta |
||
9 | } |