Проблема:
У меня есть список из двух списков из трех векторов.Я хотел бы удалить нулевой вектор из каждого подсписка.
Пример:
x <- list(x1=c(0,0,0), x2=c(3,4,5), x3=c(45,34,23))
y <- list(y1=c(2,33,4), y2=c(0,0,0), y3=c(4,5,44))
z <- list(x, y)
Попробуйте:
Я попробовал это:
res <- lapply(1:2, function(i) {lapply(1:3, function(j) z[[i]][[j]][z[[i]][[j]] != 0])})
, который дал мне это:
> res
[[1]]
[[1]][[1]]
numeric(0)
[[1]][[2]]
[1] 3 4 5
[[1]][[3]]
[1] 45 34 23
[[2]]
[[2]][[1]]
[1] 2 33 4
[[2]][[2]]
numeric(0)
[[2]][[3]]
[1] 4 5 44
Проблема с выводом:
Не хочу numeric(0)
.
Ожидаемый вывод:
x= list(x2, x3)
y=list(y1, y3)
Есть идеи, пожалуйста?