楼主: Mutually_Sincer
15873 13

[问答] 关于R中判断整数的语句 [推广有奖]

  • 4关注
  • 10粉丝

博士生

89%

还不是VIP/贵宾

-

威望
0
论坛币
6969 个
通用积分
13.9148
学术水平
11 点
热心指数
15 点
信用等级
4 点
经验
4658 点
帖子
204
精华
0
在线时间
357 小时
注册时间
2014-11-4
最后登录
2023-2-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在R的命令窗口里输入?is.integer
在帮助页面可以看到关于它的简介,按照一般的理解这应该是判断一个object是否为整数啊,可是帮助文件中也提到,若输入is.integer(1),则返回false,并且之后定义了新的函数
is.wholenumber <-
    function(x, tol = .Machine$double.eps^0.5)  abs(x - round(x)) < tol

依次来判断是不是整数,这是为什么呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Integer object Number Whole Inte false

回帖推荐

jinkelazzz 发表于7楼  查看完整内容

整形变量占内存少,运算速度更快
wanna be a stargazer
沙发
jiangbeilu 学生认证  发表于 2016-4-6 21:55:54 |只看作者 |坛友微信交流群
  1. ifinteger <- function(x){
  2. x %% 1==0
  3. }
  4. ifinteger(12)
复制代码

使用道具

藤椅
jinkelazzz 发表于 2016-4-7 09:30:08 |只看作者 |坛友微信交流群
这是判断整形变量而不是整数的。
> x<-1:5
> y<-c(1,2,3,4,5)
> is.integer(x)
[1] TRUE
> is.integer(y)
[1] FALSE

使用道具

板凳
雾锁山城 在职认证  发表于 2016-4-7 09:37:06 |只看作者 |坛友微信交流群
极限思想,两个数相减小于很小的数,就认为两个数是相等,round(x)是整数,以此判断x是否为整数

使用道具

报纸
Mutually_Sincer 学生认证  发表于 2016-4-7 09:54:53 |只看作者 |坛友微信交流群
jinkelazzz 发表于 2016-4-7 09:30
这是判断整形变量而不是整数的。
> x y is.integer(x)
[1] TRUE
嗯,的确是这样,按照你说的方法定义了x,y之后,x的类型显示为integer,而y的类型为numeric,但它们的内容其实是一样的,那么整型变量和数值型变量的区别在哪里?仅仅是说,数值形向量可以有类似y<-c(0.1,0.2,0.3)的小数定义吗?

使用道具

地板
Mutually_Sincer 学生认证  发表于 2016-4-7 09:55:29 |只看作者 |坛友微信交流群
雾锁山城 发表于 2016-4-7 09:37
极限思想,两个数相减小于很小的数,就认为两个数是相等,round(x)是整数,以此判断x是否为整数
嗯~受教了,多谢!

使用道具

7
jinkelazzz 发表于 2016-4-7 09:56:38 |只看作者 |坛友微信交流群
Mutually_Sincer 发表于 2016-4-7 09:54
嗯,的确是这样,按照你说的方法定义了x,y之后,x的类型显示为integer,而y的类型为numeric,但它们的内容 ...
整形变量占内存少,运算速度更快
已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 鼓励积极发帖讨论

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

使用道具

8
Mutually_Sincer 学生认证  发表于 2016-4-7 10:09:14 |只看作者 |坛友微信交流群
jinkelazzz 发表于 2016-4-7 09:56
整形变量占内存少,运算速度更快
感谢!!!!!!

使用道具

9
593352826 发表于 2016-4-7 14:00:27 来自手机 |只看作者 |坛友微信交流群
trunc(x)-x !=0则表示非整数
已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 鼓励积极发帖讨论

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

使用道具

10
lzcllyt 发表于 2016-4-7 18:19:21 |只看作者 |坛友微信交流群
也可以用 x/floor(x)==0来判断,不过x在0到1时会报错而且不适用与负数就是了。。。
不过也可以分段处理,就是麻烦了点
已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 精彩帖子

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

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 06:15