楼主: starbit
15405 7

[问答] 请教一个简单问题 判断一个数是否属于某一区间用什么命令 [推广有奖]

  • 1关注
  • 0粉丝

已卖:5份资源

硕士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
4378 个
通用积分
1.1432
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
391 点
帖子
20
精华
0
在线时间
322 小时
注册时间
2009-4-28
最后登录
2023-12-6

楼主
starbit 发表于 2017-1-7 16:56:46 |AI写论文
5论坛币
请教一下大家例如判断x是否属于[0,10]这个区间,应该用什么语句呀
if好像只能判断一侧
谢谢大家了


最佳答案

飞天玄舞6 查看完整内容

你可以用if(x>=0 & x
关键词:简单问题

沙发
飞天玄舞6 在职认证  发表于 2017-1-7 16:56:47
你可以用if(x>=0 & x<= 10)判断

  1. x = 3.124
  2. if(x>=0 & x<= 10) print(x+1)
复制代码
已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
哈哈哈哈2008 发表于 2017-1-7 17:13:50
x %in% c(0:10)

板凳
starbit 发表于 2017-1-7 17:20:45
哈哈哈哈2008 发表于 2017-1-7 17:13
x %in% c(0:10)
谢啦 如果是非整数呢?

报纸
jiangbeilu 学生认证  发表于 2017-1-8 11:00:37
可以使用findInterval函数来批量判断属于哪些区间
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

地板
starbit 发表于 2017-1-9 11:42:14
谢谢大家的热心帮助 也谢谢版主

7
caimiao0714 学生认证  发表于 2017-1-9 12:39:40
不用ifelse,这个运算符对于大量数据很慢。直接 0<= x & x<=10 就行。
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

8
cheetahfly 在职认证  发表于 2017-1-10 22:55:48
终于看到了这个函数:
dplyr::between(x, 0, 10)
##  implemented efficiently in C++ for local values, and translated to the appropriate SQL for remote tables.

microbenchmark(a[a <= 1 & a >= -1], a[between(a, -1, 1)], times = 30)
Unit: milliseconds
                      expr      min       lq      mean    median        uq       max neval
a[a <= 1 & a >= -1] 723.4022 997.9427 1128.8773 1152.6774 1287.4322 1609.2269    30
a[between(a, -1, 1)] 446.1393 613.3167  661.3596  654.2762  732.8539  940.2801    30

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 10:49