首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当函数返回NULL时使用lapply()

当函数返回NULL时使用lapply()
EN

Stack Overflow用户
提问于 2012-01-30 00:10:56
回答 4查看 11.3K关注 0票数 34

当函数没有return()时,有没有一种方法可以阻止lapply()为列表中的每个元素返回空值。

这里有一个非常基本的例子:

x <- function(x) {
return(NULL) }

a.list <- list(a=1,b=2,c=3)

lapply(a.list, x)

输出为:

$a
NULL

$b
NULL

$c
NULL

我的目标是根本没有这样的输出。

更新:我的用例如下。我使用lapply()输出xtable()文本,并将其sink()到一个Rnw文件中,所以这个空输出会影响我的自动化。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-30 12:50:28

脑海中浮现两个选项:

任一

trash_can <- lapply(a.list, x)

invisible(lapply(a.list, x))

第一个问题让我想知道在R中是否有类似Linux的/dev/null,你可以用它来重定向你不想要的东西。创建变量trash_can的唯一问题是,除非您使用rm(trash_can),否则它将挂起并耗尽内存。但我不认为这是一个问题。

票数 36
EN

Stack Overflow用户

发布于 2012-01-30 00:37:00

你可以这样做

a.list <- a.list[!sapply(a.list, is.null)]
票数 6
EN

Stack Overflow用户

发布于 2012-01-30 06:30:34

我想您可能想看看plyr包中的l_ply。它应该不返回任何内容,并且它具有lapply的所有属性,另外还有更多属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9054592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档