我有一个列表,其中每个元素都是一个字符串。碰巧有些元素是空字符向量。
我想获取所有这些空元素的索引,但是没有找到提供它们的语法。
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个元素长。
找到空字符向量的正确语法是什么?
答案 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的评论是您问题的最佳答案。