r - 从R中的范围数据框中获取距离在某些值内的行
问题描述
如果我有一个范围的数据框:
start end
12 18
22 30
35 40
49 70
81 90
102 110
120 124
如何获得距离在 R 中某个下限和上限阈值内的行(即下一行的开始 - 前一行的结尾在该阈值内)?
假设,我想获得距离在 5-10 之间的行,那么我想获得:
start.1 end.1 start.2 end.2
22 30 35 40
35 40 49 70
102 110 120 124
在这里,start.2 - end.1 始终介于 5-10 之间。
解决方案
library(dplyr)
df <- data.frame(
start = c(12,22,35,49,81,102,120),
end = c(18,30,40,70,90,110,124)
)
df %>%
mutate(difference = start - lag(end),
start.1 = lag(start),
end.1 = lag(end),
start.2 = start,
end.2 = end) %>%
filter(difference >= 5 & difference <= 10) %>%
select(-c(difference, start, end))
推荐阅读
- firebase-realtime-database - 如图所示,如何将数据从 Google 表格发送到 Firebase?
- python - AttributeError:模块“numpy”没有属性“testing”
- iis-6 - iis 6.2 使用 aspnet_compiler.exe 预编译
- python - Pip 安装 TLS CA 问题
- python-3.x - 使用 Selenium Python 添加属性禁用以输入文本
- javascript - 将整个图表渲染为 3d 而不仅仅是条形图
- shell - BSD sed 忽略 a\ 命令文本中的前导空格
- javascript - Javascript Add/Remove EventListener 在 jQuery 自定义功能中的运行时不起作用
- google-cloud-platform - 如何在 Google Cloud Platform 中创建用户而无需创建新的 Gmail 用户?
- typo3 - TYPO3:如何结合使用 disablePrependAtCopy 和 allowLanguageSynchronization?