gpt4 book ai didi

R从列表列表中删除空(nchar = 0)元素

转载 作者:行者123 更新时间:2023-12-01 00:44:35 26 4
gpt4 key购买 nike

我有一个列表/向量列表:

list(c("cat1", "cat6", ""), c("cat5", "cat3", "cat4"), c("cat6", 
"cat4", ""), c("cat5", "cat1", "cat2", "cat4"), c("cat6", "cat3",
"cat2"))

我正在寻找一种优雅的方法来删除 nchar=0 的内部元素,例如第一个列表中的第三个元素(值为“”)。
我试过了:
l[lapply(l,length)>0] 

但这不适用于内部元素长度,而是适用于外部列表元素长度。
预期的输出是:
list(c("cat1", "cat6"), c("cat5", "cat3", "cat4"), c("cat6", 
"cat4"), c("cat5", "cat1", "cat2", "cat4"), c("cat6", "cat3",
"cat2"))

任何帮助表示赞赏

最佳答案

我们可以使用 nzchar为非空白/空白元素创建 TRUE/FALSE 的逻辑索引,然后对 list 进行子集化元素。

lapply(l, function(x) x[nzchar(x)])

或者另一个选项是 setdiff删除 '' 的元素来自每个 list元素。
lapply(l, setdiff, '')
length函数会计数 '' ,因此它不会对删除 '' 有太大帮助.

关于R从列表列表中删除空(nchar = 0)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com