ho una matrice:applicare, sapply e lappy ritorno NULL
mat <- matrix(c(0,0,0,0,1,1,1,1,-1,-1,-1,-1), ncol = 4 , nrow = 4)
e applicare le seguenti funzioni per filtrare le colonne con solo le voci positive, ma per le colonne che hanno valori negativi Vengo NULL
. Come posso sopprimere i NULL
dall'uscita di lapply
, apply
e 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
Grazie per qualsiasi aiuto.
grazie, ma come mai che funziona anche quando non metti una virgola prima del dolce? – Cauchy
'mat [, colSums (mat> = 0)> 0]' anche – thelatemail