r - R函数封装遍历加发射值
问题描述
我正在寻找一个 R 函数来遍历数组并为通过测试的元素发出索引。我认为它会产生与这段 Python 代码相同的效果:
>>> y = (12, 44, 8, -2, 5)
>>> [i for i in range(5) if y[i] < 10]
[2, 3, 4]
我可以想办法通过sapply
子集索引来实现这一点,例如:
> c(12, 44, 8, -2, 5) -> y
> sapply (1:5, function (i) y[[i]] < 10) -> ii
> which(ii)
[1] 3 4 5
但我想知道在基本 R 或任何库中是否有现成的函数。我浏览了 purrr 的文档,但我没有看到它,尽管我很容易忽略它。
除了希望找到一些优雅的东西之外,我想我想避免构建中间数组ii
,因为它会非常大(实际上是两个数组的笛卡尔积)并且正例的数量要少得多。实现此目的的一种非功能性方法是遍历数组prepend
或以其他方式将肯定情况推送到结果数组上。
解决方案
推荐阅读
- javascript - javascript下拉列表中的动态选项
- acumatica - 无法根据操作事件的销售订单更新销售报价屏幕中的自定义字段
- android-sharing - 共享文件在android studio中不起作用
- revit-api - ReInsert_ing doc.ParameterBindings 时 VariesAcrossGroups 丢失?
- google-colaboratory - 试图让一些 javascript 应用程序在 colab 中运行
- python - cvxpy 和 numpy 之间的版本冲突:“针对 API 版本 0xe 编译的模块,但是这个版本的 numpy 是 0xd”
- javascript - 如何将从 MousePosition 类读取的坐标分配给变量
- r - 当返回值多于要分配的列时,为什么 data.table `:=` 有或没有 `by` 的工作方式不同?
- docker - 如何在我的 docker 主机上从 Nginx 反向代理 Docker 容器
- flutter - Flutter Togglebuttons 应该只能按下一次