r - 带有“开放”边界的 R 剪切、中断和分位数
问题描述
我需要根据我的数据的某个子集计算断点并将其应用于我的整个数据集。因此,例如,该子集的第 3 和第 7 个十分位数应该是我的断点。
我基本上想要的是一个左右“开放”边界的分位数函数。例如
quantile(0:10, probs= c(0, 0.3, 0.7, 1))
0% 30% 70% 100%
0 3 7 10
但我只想在我的剪切函数中使用断点 3 和 7,然后将我的向量分组。
我现在意识到我的问题没有经过深思熟虑。更清楚地说:我们的子集向量是 0:10 而不是我们有断点(3 和 7),但我想将这些断点应用于更大的向量,例如
c(-5:12)
[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12
我的目标是以这样一种方式切割这个向量,使低于 3 的所有内容(我的原始向量的第三个十分位数)都在一个组中。3 到 7 之间的所有内容都在第二组中,7 以上的所有内容都在一组中。所以总体上三个组基于另一个向量定义的切点。
有人可以帮我吗?亲切的问候
解决方案
您所描述的听起来不像是开放的边界,而是将切点从一个数据集应用到另一个数据集。为什么不直接使用这些值本身?
v1 <- c(0:10)
v2 <- c(-5:12)
q1 <- quantile(v1, probs = c(0, 0.3, 0.7, 1))
q2 <- quantile(v2, probs = c(0, which(v2 == q1[2])/length(v2)
, which(v2 == q1[3])/length(v2), 1), type=3)
q2
0% 50% 72.22222% 100%
-5 3 7 12
推荐阅读
- mysql - 创建一个表并检查某个属性是否已存在于另一个表中。只有然后保存它
- node.js - 基于外部变量的条件(不在查询中)
- azure - Azure Active Directory B2C 中缺少选项 USER FLOWS?
- go - 监视包含结构的队列中的更改
- javascript - 在画布右侧添加新数据时,将整个点集合移动到左侧
- php - 在 Laravel Eloquent 上获取关于响应的重复数据
- .htaccess - .htaccess 重写规则和哈希的奇怪问题
- ssl - 更新的证书未在浏览器中使用
- .net - 错误客户端和服务器无法通信,因为它们没有共同的算法
- javascript - 为 Web 预编译 Material Design