如何在列表中找到空向量?

时间:2016-06-21 07:45:03

标签: r string

我有一个列表,其中每个元素都是一个字符串。碰巧有些元素是空字符向量。

我想获取所有这些空元素的索引,但是没有找到提供它们的语法。

my.list <- lapply(c("I", "am", "not", "empty"), function(x) x)
my.list[[5]] <- character(0)
my.list[[6]] <- character(0)

我尝试过的所有内容(例如my.list==""my.list==character(0))都会提供完全不同的内容。如果我取消列表,它突然错过了空元素,只有4个元素长。

找到空字符向量的正确语法是什么?

3 个答案:

答案 0 :(得分:3)

您可以使用R 3.2版本,lengths功能可用:

which(!lengths(my.list))
[1] 5 6

答案 1 :(得分:2)

which(sapply(my.list,length)==0)

答案 2 :(得分:1)

您可以使用length

lapply(my.list, length) == 0

具体来说,对于角色向量,

f <- function(v){

  is.character(v) && length(v) == 0

}

vapply(my.list, f, logical(1))

请注意,Richard Telford的评论是您问题的最佳答案。