Вы можете попробовать tidyverse
решение
library(tidyverse)
# a list
a <- list(NULL, data.frame(x=T, y=F), NULL)
str(a)
List of 3
$ : NULL
$ :'data.frame': 1 obs. of 2 variables:
..$ x: logi TRUE
..$ y: logi FALSE
$ : NULL
# and replace
modify_if(a, is.null, ~compact(a) %>% unlist())
[[1]]
x y
TRUE FALSE
[[2]]
x y
1 TRUE FALSE
[[3]]
x y
TRUE FALSE
# or
modify_if(a, is.null, ~data.frame(x=NA,y=NA))