I want to calculate the mean of a list of named numbers. There are numeric(0)
values that I first want to remove. Also, I would like to retrieve which elements of
Another solution using the Filter function from base R:
mean(unlist(Filter(is.numeric, l)))
Unlisting will pull out just the numeric entries in a single vector which you can call mean on, so try:
mean(unlist(r["gg",]))
## Example list
l <- list(n1=numeric(0), n2="foo", n3=numeric(0), n4=1:5)
## Filter out elements with length 0
l[lapply(l, length) > 0]
$n2
[1] "foo"
$n4
[1] 1 2 3 4 5
## Get names of elements with length 0
names(l)[lapply(l, length) == 0]
[1] "n1" "n3"