r - 计算特定元素是否在给定范围内?
问题描述
我有一个由长度为 10 的列表组成的向量。我还有两个其他向量存储它们的下分位数和上分位数。有没有办法提取每个 10 个列表的分位数之间的数据?
基本上我想看看其中有多少有一个特定的数字。
sims 是带有数据的向量
到目前为止,我已经尝试使用 %in% (note-sims 是带有列表的向量))
for (i in 1:100){
a <- 80.0 %in% sims[[i]]
}
我打算计算其中有多少是真的,然后计算它们,但这只会返回 false 并且也不保证它是否在范围内。
有没有比通过提取相关数据对每个列表进行排序然后检查它是否具有价值更简单的方法?
解决方案
由于您没有提供示例数据集,因此这里是基于我生成的一些示例数据的可重现示例
set.seed(2018)
lst <- replicate(4, sample(10), simplify = FALSE)
qrt <- lapply(lst, quantile, probs = c(0.25, 0.75))
在这里,我为每个vector
in生成了 25% 和 75% 的分位数list
;结果是 alist
具有与 一样多的元素list
。
我们现在可以使用仅从分位数范围内Map
的元素中选择那些条目list
Map(function(x, y) x[x >= y[1] & x <= y[2]], lst, qrt)
#[[1]]
#[1] 4 5 7 6
#
#[[2]]
#[1] 4 6 5 7
#
#[[3]]
#[1] 6 5 4 7
#
#[[4]]
#[1] 4 7 6 5
计算分位数范围内的元素数
Map(function(x, y) sum(x >= y[1] & x <= y[2]), lst, qrt)
#[[1]]
#[1] 4
#
#[[2]]
#[1] 4
#
#[[3]]
#[1] 4
#
#[[4]]
#[1] 4
推荐阅读
- android - 如何在可绘制文件中使用资源文件(如矢量文件)
- r - R - 用 dplyr 截断的最佳方法
- c++ - 制作函数的编译时和运行时版本的最佳方法
- java - pyspark.sql.utils.IllegalArgumentException:'要求失败:未找到适当的资源来下载请求
- sql - Postgres SQL:列必须出现在 GROUP BY 子句中或在聚合函数中使用
- python - 计算 2 个数组中的元素 (GFG)
- reactjs - 尝试安装 CheckboxTree 库时,超级表达式必须为 null 或函数
- c# - LINQ 或 SQL:使用不同值的总和进行分组
- mongodb - deno 到 mongodb 的连接失败
- python - Pygame:我怎样才能纠正下落的球向上移动?