Мы можем использовать grepl
для сопоставления либо 0
, либо ]
и отрицания (!
), чтобы удалить значения из list
элементов
lapply(l, function(x) x[!grepl("^0$|\\]", x)])
#[[1]]
#[1] "108" "50"
#[[2]]
#[1] "109" "58"
#[[3]]
#[1] "18"
Илипреобразовать в numeric
удалить элементы NA
вместе с 0
lapply(l, function(x) x[!is.na(as.numeric(x)) & x != 0])
или использовать setdiff
lapply(l, setdiff, c("0", "0]"))