R 从列表中选择字符(0)
这是我得到的列表的dput()输出(部分)R 从列表中选择字符(0),r,list,vector,R,List,Vector,这是我得到的列表的dput()输出(部分) L<-list(c("LumenVox LLC", "LumenVox LLC", "Voxware Inc", "LumenVox LLC", "Voxware Inc", "Voxant Inc"),character(0), character(0), character(0), character(0), c("HumanZyme Inc", "ZymeQuest Inc", "Zymetx Inc",
L<-list(c("LumenVox LLC", "LumenVox LLC", "Voxware Inc", "LumenVox LLC",
"Voxware Inc", "Voxant Inc"),character(0), character(0), character(0),
character(0), c("HumanZyme Inc", "ZymeQuest Inc", "Zymetx Inc",
"Zymetx Inc"))
[[1]]
[1] "LumenVox LLC" "LumenVox LLC" "Voxware Inc" "LumenVox LLC" "Voxware Inc" "Voxant Inc"
[[2]]
character(0)
[[3]]
character(0)
[[4]]
character(0)
[[5]]
character(0)
[[6]]
[1] "HumanZyme Inc" "ZymeQuest Inc" "Zymetx Inc" "Zymetx Inc"
L我们可以使用Filter
Filter(Negate(length), L)
或者另一个选项是sapply
L[!sapply(L, length)]
或者如@MartinMorgan所述,可以使用长度(在最新的R版本中引入),这会更快
哦因此,字符(0)没有长度。谢谢最好使用L[length(L)==0L)
,这样可以避免在R级别对循环元素进行迭代。我认为标记的dupe是不正确的,因为OP需要其他东西。
L[!lengths(L))