我有一个类似的列表:
> str(gf)
List of 28
$ : NULL
$ :'data.frame': 1 obs. of 2 variables:
..$ x: logi NA
..$ y: logi NA
$ : NULL
$ : NULL
$ : NULL
我想用
替换所有NULL
data.frame(x=NA,y=NA)
答案 0 :(得分:1)
您可以尝试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))