powrót Mam matrycy:zastosować, sapply i lappy NULL
mat <- matrix(c(0,0,0,0,1,1,1,1,-1,-1,-1,-1), ncol = 4 , nrow = 4)
i zastosować następujące funkcje odfiltrować kolumn z tylko pozytywne wpisy, ale dla kolumn, które mają negatywne wpisy dostaję NULL
. Jak mogę wyłączyć NULL
s z wyjścia lapply
, apply
i sapply
?
> lapply(as.data.frame(mat), function(x) { if(all(x >= 0)){return(x)} })
$V1
[1] 0 0 0 0
$V2
[1] 1 1 1 1
$V3
NULL
$V4
[1] 0 0 0 0
> sapply(as.data.frame(mat), function(x) { if(all(x >= 0)){return(x)} })
$V1
[1] 0 0 0 0
$V2
[1] 1 1 1 1
$V3
NULL
$V4
[1] 0 0 0 0
> apply(mat, 2, function(x){if (all(x >= 0)){return(x)}})
[[1]]
[1] 0 0 0 0
[[2]]
[1] 1 1 1 1
[[3]]
NULL
[[4]]
[1] 0 0 0 0
Dzięki za pomoc.
dzięki, ale jak to się stało, że działa nawet wtedy, gdy nie umieścić przecinek przed sapply? – Cauchy
'mat [, colSums (mat> = 0)> 0]' również – thelatemail