r - 如何识别向量的确切元素是什么?
问题描述
我有一个x
形式的向量:
x=c(601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
647, 648, 649, 650)
如果length (x) == 50
:我想测试(TRUE或FALSE)x 是否完全等于 1:50 或 51:100 或 101:150 或 151:200 .... 或 951:1000 的间隔之一。
或者length (x)> 50
,我想测试(TRUE或FALSE)x 是否完全等于由 ((1:50 U 51: 100) 或 (1:50 U 101: 150) 或 (51: 100) 组成的区间的并集U 151:200)……)。
我的尝试:
all(
x == c(1:50) |
x == c(51:100) |
x == c(101:150) |
x == c(151:200) |
x == c(201:250) |
x == c(251:300) |
x == c(301:350) |
x == c(351:400) |
x == c(401:450) |
x == c(451:500) |
x == c(501:550) |
x == c(551:600) |
x == c(601:650) |
x == c(651:700) |
x == c(701:750) |
x == c(751:800) |
x == c(801:850) |
x == c(851:900) |
x == c(901:950) |
x == c(951:1000)
)
我想优化这段代码。
PS:我不想像这个问题x
那样有一个元素和间隔的频率表。我想知道是否完全对应于这些间隔的一个或并集。x
解决方案
你可以使用cut
,即
unique(cut(x, breaks = seq(0, 1000, by = 50)))
#[1] (600,650]
如果你想要一个布尔值 Ifx
包含在这些间隔中,那么你可以这样做,
unique(cut(x, breaks = seq(0, 1000, by = 50))) != ''
#[1] TRUE
#or If you only want to be in 1 group, then as suggested by Ronak,
length(unique(cut(x, breaks = seq(0, 1000, by = 50)))) == 1
#[1] TRUE
推荐阅读
- r - 如何过滤栅格或仅在 R 中绘制某些栅格类别值?
- android - 如何在 Recyclerview 中管理多个视图?
- terraform - 将动态嵌套列表输入到 terraform setproduct() 函数中
- flutter - AdMob Flutter 顶部横幅安全区域
- c# - 根据 TextBox 值暂停和恢复任务
- javascript - 动态设置 React 组件的 props
- python - Discord.py(重写)静音命令总是返回相同的响应
- c++ - 将 C++ 链接堆栈转换为智能指针
- flutter - 如何在同一屏幕上正确使用带有两个事件的 BLoC?
- android - 如何通过 API 获取我的应用发布状态