我尝试在map()中将以下列表的NULL元素替换为NA,然后再对清洗后的列表使用rbindlist:
我尝试了以下代码:
m = list(min = list(id = "min", val = NULL),
max = list(id = "max", val = 7),
split = list(id = "split", val = "gini"))
str(m)
List of 3
$ min :List of 2
..$ id : chr "min"
..$ val: NULL
$ max :List of 2
..$ id : chr "max"
..$ val: num 7
$ split:List of 2
..$ id : chr "split"
..$ val: chr "gini"
我尝试了以下代码:
map(m, ~list_modify(.x, new = 8), .default = NA) %>% rbindlist
,但不确定为什么 .default = NA
不起作用。从文档示例中推测,可能是因为 .default = NA
仅检查 list_modify 返回的列表的第一层是否为 NULL?将其放置在 list_modify()
中也无效。是否有一种方法在 map 管道内部替换 NULLs 为 NA 而不使用 lapply?
NULL
元素?如果是,你可以使用嵌套的map
函数:map(m, function(x) map(x, function(y) ifelse(is.null(y), NA, y)))
。 - Maurits Eversmap(m, function(x) map(x, function(y) ifelse(is.null(y), NA, y)))
只会替换第二层级别的NULL
条目,所以这应该适用于您的情况。 - Maurits Evers