R:对一个包含整数(0)元素的列表使用unlist()函数?

use*_*627 4 r

在R中,我正在调用unlist一个列表来转换为向量.但是,我的一些列表元素是空的,因此返回integer(0).在unlist()默认情况下,功能下降这一点.如何返回NA列表为空的向量?我创建了一个可重现的例子:

> ex.list <- list()
> ex.list[[1]] <- integer(0)
> ex.list[[2]] <- c(1,2,3)
> ex.list
[[1]]
integer(0)

[[2]]
[1] 1 2 3

> unlist(ex.list)
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

谢谢.

Rui*_*das 7

一种方法是使用功能is.na<-.

is.na(ex.list) <- lengths(ex.list) == 0

ex.list
#[[1]]
#[1] NA
#
#[[2]]
#[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

然后你将得到一个NA列表长度为0的位置.

unlist(ex.list)
#[1] NA  1  2  3
Run Code Online (Sandbox Code Playgroud)

  • @Christoph - `is.na <-`是一个函数.在控制台输入`\`is.na < - \``和`\`is.na < - .default \``来查看它在做什么. (2认同)