在R中的列表中替换null?

时间:2018-06-11 14:13:30

标签: r

我有一个类似的列表:

  > 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)

1 个答案:

答案 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))