R 如何用空值展平列表?

R 如何用空值展平列表?,r,purrr,R,Purrr,我正在尝试将此列表展平,但由于空值,它无法工作。我希望它在展平列表时变成NA。我正在使用下面的代码 list('hi','hello', NULL) %>% purrr::flatten_chr() 它检索一个错误 错误:无法将元素3从NULL强制为字符 我想在purr中找到一个解决方案,因为我在整平列表之前和之后使用它进行一些其他操作 list('hi','hello', NULL) %>% lapply(function(x) ifelse(is.null(x), NA, x

我正在尝试将此列表展平,但由于空值,它无法工作。我希望它在展平列表时变成
NA
。我正在使用下面的代码

list('hi','hello', NULL) %>% purrr::flatten_chr()
它检索一个错误

错误:无法将元素3从NULL强制为字符

我想在
purr
中找到一个解决方案,因为我在整平列表之前和之后使用它进行一些其他操作

list('hi','hello', NULL) %>% 
lapply(function(x) ifelse(is.null(x), NA, x)) %>% 
purrr::flatten_chr()

也许这对你有用?首先替换空值,然后展平。希望这有帮助。

这不是
purr
,但它确实有效:

a <- list('hi','hello', NULL)
> sapply(a,function(x) ifelse(is.null(x),NA,x))
[1] "hi"    "hello" NA   
a sapply(a,函数(x)ifelse(is.null(x),NA,x))
[1] “嗨”“你好”娜

比我的建议更好的解决方案,我同意这个方案。+1但我忘了在我的回答中提到我更喜欢呆在
purr
。我试图使用
purrr:map
而不是
sapply
ifelse
来实现它,但无法使其工作。got it
list('a','b',NULL)%%>%purr::map(.x=,~ifelse(is.NULL(.x),NA,.x))
map\u chr
的参数,在这里可能会有所帮助。我认为参数存在于CRAN版本中,但我只在使用当前开发版本(0.2.2.9000)时使用过:
list('hi','hello',NULL)%>%purrr::map_chr(1L,.default=NA)