r - 一个 R 函数是否可以像 [] 中那样不返回任何内容?
问题描述
任何玩过 R 一段时间的人都知道,真正没有和任何长度为 0 的对象NULL
之间存在差异:0
> a<-list(1,2,3,4)
> a[]#"Genuinely nothing"
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
> a[NULL]
list()
> a[0]
list()
> a[integer(0)]
list()
第一个案例引起了我的兴趣。有什么方法可以让 R 函数返回我所说的“真正什么都没有”,以便a[foo]
返回所有a
子赋值并与子赋值进行交互a[]
?我知道等效的行为,例如a[TRUE]
,但我想知道是否有可能让函数返回我所说的“真正什么都没有”。据推测,我给出的示例必须为 提供某种参数[
,因此它应该存在于 R 中的某个地方。
解决方案
正如哈德利在上述帖子的评论中指出的那样:
a <- list(1,2,3,4)
foo <- function() {quote(expr=)}
a[foo()]
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 4
推荐阅读
- excel - Excel:如何计算跨列的移动?
- java - 在 Java 中完成任务时线程正在增加但不减少
- c# - Monogame 使班级中的物体独立移动
- c# - System.ArgumentException:'没有要添加的标题(参数'header')'
- php - 从一个巨大的多维数组中取出某些键
- ios - 仅当用户触摸线中的某个点时,如何显示线的值?
- hibernate - 如何在hibernet5中禁用二级域加入查询
- c# - 如何使用 MongoDB.Driver C# 更新 MongoDB 文档中的数组
- sql - 如何仅将 LIMIT 应用于父行
- xamarin - 用于本机可访问性功能的 Xamarin.Forms 依赖注入