R 如何从列表中删除元素?

R 如何从列表中删除元素?,r,R,虽然标题看起来很简单,但我还没有在StackOverflow上找到答案。 我的问题是:我有一些元素的列表。列表的每个元素也包含一个填充了一些字符串的列表。列表中的列表包含空(“”)值,而不是空值。我想删除列表中的空行。一个人怎么能做到?我想拉普利会做的,但我不知道如何使用它那里 如果您能提出建议,我将不胜感激!非常感谢 编辑: 所以我的输出是这样的 $'1' 1 text1 2 text2 3 4 text3 5 text4 $'2' 1 text1 2 3 text2 4 5 text3

虽然标题看起来很简单,但我还没有在StackOverflow上找到答案。 我的问题是:我有一些元素的列表。列表的每个元素也包含一个填充了一些字符串的列表。列表中的列表包含空(“”)值,而不是空值。我想删除列表中的空行。一个人怎么能做到?我想拉普利会做的,但我不知道如何使用它那里

如果您能提出建议,我将不胜感激!非常感谢

编辑: 所以我的输出是这样的

$'1'
1 text1
2 text2
3
4 text3
5 text4

$'2'
1 text1
2
3 text2
4
5 text3
我的目标是删除那些空的行,使其看起来像这样:

$'1'
1 text1
2 text2
3 text3
4 text4

$'2'
1 text1
2 text2
3 text3

这是一个异常棘手的问题。首先,我综合了一些测试数据:

l <- list(list('a','b','','c','','d'),list('','e',''));
l;
## [[1]]
## [[1]][[1]]
## [1] "a"
##
## [[1]][[2]]
## [1] "b"
##
## [[1]][[3]]
## [1] ""
##
## [[1]][[4]]
## [1] "c"
##
## [[1]][[5]]
## [1] ""
##
## [[1]][[6]]
## [1] "d"
##
##
## [[2]]
## [[2]][[1]]
## [1] ""
##
## [[2]][[2]]
## [1] "e"
##
## [[2]][[3]]
## [1] ""
##
##

您可以在此处使用
lappy
,这是正确的

test <- list(c("text1", "text2", "", "text3", "text4"), 
             c("text1", "", "text2", "", "text3"))

lapply(1:length(test), function(x) test[[x]][test[[x]] != ""])

[[1]]
[1] "text1" "text2" "text3" "text4"

[[2]]
[1] "text1" "text2" "text3"
测试
lapply(l,function(l2) l2[do.call(c,l2)!=''])
## [[1]]
## [[1]][[1]]
## [1] "a"
##
## [[1]][[2]]
## [1] "b"
##
## [[1]][[3]]
## [1] "c"
##
## [[1]][[4]]
## [1] "d"
##
##
## [[2]]
## [[2]][[1]]
## [1] "e"
##
##
test <- list(c("text1", "text2", "", "text3", "text4"), 
             c("text1", "", "text2", "", "text3"))

lapply(1:length(test), function(x) test[[x]][test[[x]] != ""])

[[1]]
[1] "text1" "text2" "text3" "text4"

[[2]]
[1] "text1" "text2" "text3"