Вы можете использовать paste
:
X[paste0("x", newX[newX != 0])]
$`x4`
[1] 5 6 7
$x7
[1] 3 4 5 6
$x9
[1] 44 56 7
$x10
[1] 34 5 4
paste0("x", newX[newX != 0]
создаст вектор символов "x4", "x7", "x9", "x10"
, который вы можете использовать для индексации списка.